Application.onTime повторно вызывает открытие документа - VB

Узнай цену своей работы

Формулировка задачи:

Добный день. Целый день бьюсь над этой проблемой.
Суть в том, что скорее всего (это я уже методом тыка понял) после закрытия книги метод 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4 из 5