Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

20 Февраль 2019, 14:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Вы можете задать вопрос по LibreOffice или Apache OpenOffice  без регистрации, используя форму
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Копировать диапазон ячеек из листа в новую книгу  (Прочитано 2200 раз)
0 Пользователей и 1 Гость смотрят эту тему.
dimmon777
Форумчанин
***
Offline Offline

Сообщений: 63


« Стартовое сообщение: 25 Февраль 2016, 17:38 »

Добрый день!
Использую следующий макрос для создания новой книги и копирования туда диапазона ячеек (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
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 707


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #1: 25 Февраль 2016, 18:06 »

.getDataArray и .setDataArray(aData) (методы объекта Range - .geCellRangeByPosition или, как у тебя - .getCellRangeByName)
или
.getTransferable() и .insertTransferable(obj) (методы контроллера)
или просто через буфер обмена
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
dimmon777
Форумчанин
***
Offline Offline

Сообщений: 63


« Ответ #2: 25 Февраль 2016, 18:13 »


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


работает, НО копирует только данные из ячеек на не формат ячеек. А мне нужен формат.
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 707


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #3: 25 Февраль 2016, 18:20 »

Тогда или .getTransferable() / .insertTransferable(obj), или скопировать нужный лист в новую книгу и уже там почистить от лишнего
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 648


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #4: 25 Февраль 2016, 18:26 »

В этой теме посмотрите
Записан

Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!