Ну, например, для диалога с одним текстовым полем (в примере названо TextField1) и одним числовым полем (в примере с именем NumericField1) на кнопку "записать в таблицу" можно назначить что-то вроде этого:
Sub InsertData
n = 1 'поиск первой свободной строки таблицы
UCell = ThisComponent.Sheets(0).getCellRangeByName("A" & CStr(n))
While Not(UCell.getType() = com.sun.star.table.CellContentType.EMPTY)
n = n + 1
UCell = ThisComponent.Sheets(0).getCellRangeByName("A" & CStr(n))
Wend
'запись данных с формы на лист
ThisComponent.Sheets(0).getCellRangeByName("A" & CStr(n)).Value = n – 1
ThisComponent.Sheets(0).getCellRangeByName("B" & CStr(n)).String = MyDlg.GetControl("TextField1").Text
ThisComponent.Sheets(0).getCellRangeByName("C" & CStr(n)).Value = CSng(MyDlg.GetControl("NumericField1").Value)
End Sub
Надеюсь, как создать диалог, и то, что его следует запускать отдельным макросом вида
Dim MyDlg As Object
Sub RunDialog
MyDlg = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
MyDlg.execute()
End Sub
для вас не секрет.
На всякий случай, адрес
оригинальной статьи