Application.onTime повторно вызывает открытие документа - VB
Формулировка задачи:
Добный день. Целый день бьюсь над этой проблемой.
Суть в том, что скорее всего (это я уже методом тыка понял) после закрытия книги метод Application.onTime остается запланированным и снова открывает документ через время, которое ему запланировано для выполнения заданной ему функции. Я поборол это таким способом
Но это работает (файл после закрытия уже не открывается сам) только когда закрываешь книгу на крестик, а если запустить функцию - closeFile, то файл снова откроется после закрытия. Я в затыке конкретном, ведь во время выполнения функции closeFile все равно вызовится -
Суть в том, что скорее всего (это я уже методом тыка понял) после закрытия книги метод Application.onTime остается запланированным и снова открывает документ через время, которое ему запланировано для выполнения заданной ему функции. Я поборол это таким способом
Но это работает (файл после закрытия уже не открывается сам) только когда закрываешь книгу на крестик, а если запустить функцию - closeFile, то файл снова откроется после закрытия. Я в затыке конкретном, ведь во время выполнения функции closeFile все равно вызовится -
Решение задачи: «Application.onTime повторно вызывает открытие документа»
textual
Листинг программы
Public cancelTime As Variant
Function closeFile()
Workbooks.Application.DisplayAlerts = False
Application.OnTime cancelTime, "checkFile", , False
Workbooks("test.xlsm").Save
Workbooks("test.xlsm").Close
End Function
Function checkFile()
cancelTime = (Now + TimeValue("00:00:05"))
Application.OnTime cancelTime, "checkFile"
If IsHasFile("C:\Users\vdekameron\Downloads\1.txt") = True Then
closeFile
End If
End Function
Function IsHasFile(Path As String) As Boolean
If Dir(Path) = "" Then
IsHasFile = False
Else
IsHasFile = True
End If
End Function