无法从 LibreOffice 6.4.3.2 Basic 中的单元格获取值



我是libreoffice basic的新手,我有VBA的经验,但这个libreoffice是不同的。

我只想获取单元格值,但它总是向我返回零值,而精算单元格可以是文本或数字。

这是我的部分简单代码。

子test_moved((

Dim Doc As Object
'worksheet
Dim sh_village As Object
Dim sh_cbc As Object
sh_village = ThisComponent.CurrentController.getActiveSheet()
'sh_village = Doc.Sheets.getByName("VillageFinal")
'sh_village = Doc.Sheets(1)
Msgbox(sh_village.getCellrangeByName("B2").getValue())
Msgbox(sh_village.getCellrangeByName("B2").Value)   
Msgbox(sh_village.getCellByPosition(1,1).Value)
msgbox("The process is completed.")

结束子

在开始编码之前,我们需要先做任务吗?

代码适用于数值。但是,对于字符串(包括看起来像数字的字符串(,它将显示0,因为没有数值。

您可能想要的是:

MsgBox(sh_village.getCellRangeByName("B2").getString())

另请查看格式化 -> 单元格 -> 数字以查看数据在单元格中的显示方式。并注意编辑栏中值前面的单引号(例如'42(,因为这意味着它是一个字符串。删除引号以使其成为数字。

我有 VBA 的经验,但这个自由办公室是不同的。

是的,LibreOffice Basic 是与 VBA 不同的语言,LibreOffice API 与 MS Office API 非常不同。了解这一点将帮助您更有效地使用它。如果可能的话,避免Option Compatible,因为它不会解决大多数问题,只会把水搅浑。

相关内容

最新更新