Макрос Libreoffice Calc ведет себя по-разному при выполнении в отладке и с помощью кнопки - PullRequest
0 голосов
/ 18 декабря 2018

Я пишу макрос для 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 с заголовком документа отображается, как обычно.Клетки не очищаются, хотя.Что мне нужно сделать, чтобы моя кнопка очищала ячейки?

...