Уважаемые форумчане, добры день! У меня в Excel макросом запускается таймер на просмотр содержимого папки и если информация там есть, то происходит выполнение другой подпрограммы. Я не могу сообразить, как мне можно в случае необходимости выключить таймер (остановить выполнение программы) либо через кнопку или в самой программе через Exit Sub: [vba]
Код
Private Sub Просмотр ()
x = "C:\User1\User2\*.*" file = Dir(x)
If file <> "" Then Программа_1 Else: If Time >= #2:00:00 PM# Then Exit Sub
Уважаемые форумчане, добры день! У меня в Excel макросом запускается таймер на просмотр содержимого папки и если информация там есть, то происходит выполнение другой подпрограммы. Я не могу сообразить, как мне можно в случае необходимости выключить таймер (остановить выполнение программы) либо через кнопку или в самой программе через Exit Sub: [vba]
Код
Private Sub Просмотр ()
x = "C:\User1\User2\*.*" file = Dir(x)
If file <> "" Then Программа_1 Else: If Time >= #2:00:00 PM# Then Exit Sub
Public t As Date Private Sub Просмотр() If t < Now Then Exit Sub 'x = "C:\User1\User2\*.*" x = ThisWorkbook.Path & "\" file = Dir(x) If file <> "" Then Программа_1 End If Application.OnTime DateAdd("s", 2, Now), "Просмотр" t = Now + 2 / 24 End Sub Sub StopUpdate() t = Now Debug.Print "stop ", Time End Sub Sub StartUpdate() t = Now + 2 / 24 Просмотр End Sub
[/vba]
A_3485, попробуйте так: [vba]
Код
Public t As Date Private Sub Просмотр() If t < Now Then Exit Sub 'x = "C:\User1\User2\*.*" x = ThisWorkbook.Path & "\" file = Dir(x) If file <> "" Then Программа_1 End If Application.OnTime DateAdd("s", 2, Now), "Просмотр" t = Now + 2 / 24 End Sub Sub StopUpdate() t = Now Debug.Print "stop ", Time End Sub Sub StartUpdate() t = Now + 2 / 24 Просмотр End Sub
Sub qq() Static t As Date If Dir(ThisWorkbook.Path & "\Книга11.xlsx") <> "" Then Application.OnTime t, "qq", , True MsgBox "QQ" Else MsgBox "WW" t = Now + TimeValue("00:00:10") Application.OnTime t, "qq" End If End Sub
[/vba]
[vba]
Код
Sub qq() Static t As Date If Dir(ThisWorkbook.Path & "\Книга11.xlsx") <> "" Then Application.OnTime t, "qq", , True MsgBox "QQ" Else MsgBox "WW" t = Now + TimeValue("00:00:10") Application.OnTime t, "qq" End If End Sub