在调试中和通过按钮执行时,Libreoffice Calc宏的行为有所不同

时间:2018-12-17 22:12:43

标签: libreoffice libreoffice-calc libreoffice-basic

我正在为Libreoffice Calc编写宏。它只是在MsgBox中显示文档标题,选择工作表中的所有单元格并清除它们。

REM  *****  BASIC  *****

Sub Main

rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object

rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
MsgBox document.Title

rem------------------------------------------------------------------------
rem Preparando a folha
dispatcher.executeDispatch(document, ".uno:SelectAll", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:ResetAttributes", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())

End Sub

如果我打开宏编辑器并按F5键执行此代码,它将显示一个带有文档标题的文本框,并按预期清除我选择的最后一张纸。现在,我想通过按钮针对特定工作表自动执行此操作。我插入了按钮,用鼠标右键单击了该按钮,然后在弹出菜单中单击了“控件...”,转到“事件”选项卡,然后将我的功能放在“执行动作”项中。当我单击该按钮时,将正常显示带有文档标题的MsgBox。不过,这些细胞不会被清洗。我该怎么做才能使我的按钮清除单元格?

0 个答案:

没有答案