我正在使用Excel for Engineers并尝试将其用于LibreOffice Calc。我遇到了一个问题。我知道如果不使用宏,这更容易,但幽默我。其中一个练习是开始录制宏,输入:
=RAND()
点击进入并停止录制。
当我运行宏时没有任何反应。我尝试使用任何其他Calc内置函数,同样的事情发生。查看宏基本文件,确定没有发生任何事情。
录制宏时可以使用内置函数吗?如果是这样的话?
答案 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无济于事。这两种语言和平台完全不同。