Вставка таблицы из LibreOffice Calc во Writer с помощью макросов

Автор Artshade, 1 февраля 2023, 17:39

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

Artshade

Добрый день!
Вынуждена перебираться с VBA в LibreOffice Basic. Возник затык именно с таблицами.
Они у меня меняются от отчета к отчету (разное кол-во строк). Таблицы с листов Excel в Word я автоматически копировала следующим образом:

ThisWorkbook.Worksheets("Организации").Range("A13").CurrentRegion.Copy
myDocument.Bookmarks("torg").Range.PasteExcelTable True, False, False

Первая строка по-прежнему работает, а вторая нет, по понятным причинам. Если ли способ скопированный диапазон ячеек вставить в нужное место документа (с помощью закладки) в виде таблицы?

Artshade

Сама нашла решение.

Dim myDocument As Object
Dim FileName
dim oUrl as String
dim oDesk as Object
dim document   as object
dim dispatcher as object
dim ViewCursor As Object

oDesk=createUnoService("com.sun.star.frame.Desktop")
FileName = ActiveWorkbook.Path + "/Шаблон.docm"
oUrl=convertToUrl(FileName)
myDocument=oDesk.loadComponentFromURL(oUrl,"_blank",0,Array())

Set Организации = ThisWorkbook.Worksheets("Организации")
ThisWorkbook.Worksheets("Организации").Range("A13").CurrentRegion.Copy

document   = myDocument.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
ViewCursor = myDocument.CurrentController.getviewCursor()

ViewCursor.gotorange(myDocument.Bookmarks.getByName("torg").Anchor, False)
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())