录制宏时使用内置的 Calc 函数
Using built in Calc function when recording a macro
我正在为工程师完成 Excel 工作,并尝试将其改编为 LibreOffice Calc。我遇到了 运行 个问题。我知道这在不使用宏的情况下更容易做到,但请原谅我。其中一项练习是开始录制宏,键入:
=RAND()
按回车键并停止录制。
当我 运行 宏没有任何反应。我尝试使用任何其他 Calc 内置函数,但同样的事情发生了。查看宏基本文件,果然什么都没有发生。
录制宏时可以使用内置函数吗?如果有怎么办?
目前,LibreOffice 宏录制器不录制添加 built-in 功能。事实上,记录器有很多限制,通常会导致代码不佳(主要使用调度程序)。
相反,根据 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。两种语言和平台完全不同。
我正在为工程师完成 Excel 工作,并尝试将其改编为 LibreOffice Calc。我遇到了 运行 个问题。我知道这在不使用宏的情况下更容易做到,但请原谅我。其中一项练习是开始录制宏,键入:
=RAND()
按回车键并停止录制。
当我 运行 宏没有任何反应。我尝试使用任何其他 Calc 内置函数,但同样的事情发生了。查看宏基本文件,果然什么都没有发生。
录制宏时可以使用内置函数吗?如果有怎么办?
目前,LibreOffice 宏录制器不录制添加 built-in 功能。事实上,记录器有很多限制,通常会导致代码不佳(主要使用调度程序)。
相反,根据 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。两种语言和平台完全不同。