powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Application.onTime повторно вызывает открытие документа
2 сообщений из 2, страница 1 из 1
Application.onTime повторно вызывает открытие документа
    #39608738
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добный день. Целый день бьюсь над этой проблемой.
Суть в том, что скорее всего (это я уже методом тыка понял) после закрытия книги метод Application.onTime остается запланированным и снова открывает документ через время, которое ему запланировано для выполнения заданной ему функции. Я поборол это таким способом
Код: vbnet
1.
2.
3.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
     Application.OnTime cancelTime, "checkFile", , False
End Sub


Но это работает (файл после закрытия уже не открывается сам) только когда закрываешь книгу на крестик, а если запустить функцию - closeFile, то файл снова откроется после закрытия. Я в затыке конкретном, ведь во время выполнения функции closeFile все равно вызовится -
Код: vbnet
1.
2.
3.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
     Application.OnTime cancelTime, "checkFile", , False
End Sub
...
Рейтинг: 0 / 0
Application.onTime повторно вызывает открытие документа
    #39609439
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашел решение.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
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
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Application.onTime повторно вызывает открытие документа
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]