在 libreoffice 中访问表单

Acessing forms in libre office

我在网上找不到任何有用的信息,而且我发现的任何代码似乎都不起作用,任何人都可以给我实际代码如何在 libre office 中访问表格吗? 我已经尝试了 3 天来让我的代码正常工作,每次我收到错误或名称不存在时...我在哪里可以看到我的对象的名称? 我尝试重命名它们,但没有用。我只需要一个简单的宏,当我按下一个按钮时,来自表单的数据被复制到另一个 sheet 上的单元格中。 这是我现在拥有的代码:

副主线

dim Form as object
dim filename as String

  xSheet = ThisComponent.Sheets(0)
  Form=Event.Source.Model.Parent


  oCell = xSheet.getCellByPosition(0,0)
  oCell = Form.getByName("PB1").currentvalue

End Sub

Form=Event.Source.Model.Parent <- 这是我遇到第一个错误的地方 "object variable not set"

您需要将代码放在事件处理程序中,而不是 Sub Main。这是一个工作示例:

Sub ButtonClick(oEvent)
    Dim oForm as Object
    Dim oCell as Object
    Dim filename as String

    xSheet = ThisComponent.Sheets(0)
    oForm = oEvent.Source.Model.Parent
    oTextBox = oForm.getByName("TB1")
    filename = oTextBox.currentvalue()
    oCell = xSheet.getCellByPosition(0,0)
    oCell.setString(filename)
End Sub

在我的表单中有一个名为 "PB1" 的按钮和一个名为 "TB1" 的文本框。

要使其正常工作,请在表单设计模式下,右键单击您的按钮并将此宏分配给 "Execute action" 事件。