我使用 LibreOffice Calc 已有 3 年多,但最近开始使用 Basic 实现宏。我参考了与 Libreoffice Calc Macro 相关的在线资源,并尝试在特定单元格中获取绝对文件路径。
以下是我尝试运行的代码,它引发了错误:
错误:
BASIC 运行时错误。
未找到属性或方法:setValue。
代码
Sub selectFile
Dim FileNames() as String
Dim Doc as Object
Dim oSheet as Object
Dim oDestCell as Object
FileNames = fImportLocalFile()
Doc = ThisComponent
oSheet = Doc.Sheets(0)
oDestCell = oSheet.getCellByPosition(1,1)
oSheet.setValue(FileNames, False)
Msgbox Join(FileNames, Chr(10))
End Sub
我可能缺少一些导入/包含,导致此错误。无法在线找到相关资源,因此在此发布我的问题。
提前感谢任何指点。
答案1
对于 LibreOffice/Apache OpenOffice 编程,请获取扩展MRI
!
以及文档(可在SDK
安装包中找到)。
这是什么MRI
为您的目标记录:
Sub Snippet
Dim oSheets As Variant
Dim oObj1 As Variant
Dim oCellByPosition As Variant
oSheets = ThisComponent.getSheets()
oObj1 = oSheets.getByName("Tabelle1")
oCellByPosition = oObj1.getCellByPosition(1, 1)
oCellByPosition.setString("whatever")
End Sub
解释:
sheet.setValue
- 正如错误消息所述:没有这样的属性。
cell.Value
- 错误,因为.setValue
设置了DOUBLE
,而不是字符串。
cell.Text
- 错误,因为单元格的Text
对象需要一个CellTextCursor
(包含格式指令)和一个String
(包含文本字符)。
作为初学者Andrew Pitonyak 的宏文档,作为免费文档 - 或者购买他的书。
[我与他书的作者或著作无关]