Как завершить цикл при закрытии формы (окна) - PullRequest
0 голосов
/ 17 мая 2019

Это должно быть действительно легко, но я не могу это выяснить.Я пытаюсь сделать цикл для сохранения записей формы каждую минуту.Это работает, но когда я закрываю форму, макрос продолжает работать и в итоге возвращает нежелательную ошибку, потому что форма больше не открыта:

BASIC runtime error.
An exception occurred 
Type: com.sun.star.lang.DisposedException
Message: Frame disposed. 

Это мой макрос

Sub Save_loop
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

   Do Until   '???window is closed
       dispatcher.executeDispatch(document, ".uno:RecSave", "", 0, Array())
       wait 60000
   Loop
End Sub

Что я могупоставить на Пока / До, чтобы не вернуть эту ошибку?

1 Ответ

0 голосов
/ 24 июня 2019

Событие userForm_QueryClose () должно работать

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
   is_closed = 1
End Sub


Sub Save_loop
   document = ThisComponent.CurrentController.Frame
   dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

       Do Until   '???window is closed
           If (is_closed = 1) Then break
           dispatcher.executeDispatch(document, ".uno:RecSave", "", 0, Array())
           wait 60000
       Loop
End Sub
...