录制宏时使用内置Calc功能

时间:2018-03-20 22:25:57

标签: function built-in libreoffice-calc libreoffice-basic

我正在使用Excel for Engineers并尝试将其用于LibreOffice Calc。我遇到了一个问题。我知道如果不使用宏,这更容易,但幽默我。其中一个练习是开始录制宏,输入:

=RAND()

点击进入并停止录制。

当我运行宏时没有任何反应。我尝试使用任何其他Calc内置函数,同样的事情发生。查看宏基本文件,确定没有发生任何事情。

录制宏时可以使用内置函数吗?如果是这样的话?

1 个答案:

答案 0 :(得分:1)

目前,LibreOffice宏录制器不会记录添加内置功能。事实上,录音机有许多限制,通常会导致代码不佳(主要是使用调度程序)。

相反,请根据https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Function_Handling等文档编写API代码。

Sub CallSpreadsheetFunction
    funcAcc = createUnoService("com.sun.star.sheet.FunctionAccess")
    oSheet = ThisComponent.getSheets().getByIndex(0)
    oCell = oSheet.getCellRangeByName("A1")
    oCell.setValue(funcAcc.callFunction("RAND", Array()))
End Sub

开始学习LibreOffice宏的好地方是http://www.pitonyak.org/oo.php

请注意,学习LibreOffice Basic对于了解MS Office VBA无济于事。这两种语言和平台完全不同。