Копировать диапазон ячеек из листа в новую книгу

Автор dimmon777, 25 февраля 2016, 17:38

0 Пользователи и 1 гость просматривают эту тему.

dimmon777

Добрый день!
Использую следующий макрос для создания новой книги и копирования туда диапазона ячеек (A2:C8) из старой:
Sub Copy
Dim oDesk as Object
Dim oDoc as Object
Dim oUrl as String
Dim oUrlTemp as String
Dim oSheet
oSheet = ThisComponent.Sheets(0)
oDesk = createUnoService ("com.sun.star.frame.Desktop")

Dim oRangeAddress
Dim oCellAddress

oUrlTemp = "private:factory/scalc"

oDoc = oDesk.loadComponentFromURL (oUrlTemp, "_blank", 0, Array() )
oSheet = oDoc.sheets (0)
oSheet1 = ThisComponent.Sheets(0)

oRangeAddress = oSheet.getCellRangeByName("A2:C8").getRangeAddress()
oCellAddress = oSheet1.getCellByPosition(0, 2).getCellAddress()
oSheet.copyRange(oCellAddress, oRangeAddress)

end sub


Дело в том, что данный метод не копирует ячейки из одной книги в другую(((

Подскажите способ копирования диапазона ячеек ???

JohnSUN

.getDataArray и .setDataArray(aData) (методы объекта Range - .geCellRangeByPosition или, как у тебя - .getCellRangeByName)
или
.getTransferable() и .insertTransferable(obj) (методы контроллера)
или просто через буфер обмена
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

dimmon777


oAllData=Sheet1.getCellRangeByName("A2:C8").DataArray
Sheet2.getCellRangeByName("A2:C8").DataArray=oAllData



работает, НО копирует только данные из ячеек на не формат ячеек. А мне нужен формат.

JohnSUN

Тогда или .getTransferable() / .insertTransferable(obj), или скопировать нужный лист в новую книгу и уже там почистить от лишнего
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне