Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.07.2009, 20:22   #1
zander
Форумчанин
 
Регистрация: 24.01.2009
Сообщений: 113
По умолчанию помогите макрос остановить


есть такой макрос который мониторит два файла и запускает два макроса в зависимости от результатов мониторнга

Const ИмяФайла1 = "C:\input\Alex.txt"
Const ИмяФайла2 = "C:\input\Alex1.txt"

Public РазмерФайла1 As Long, РазмерФайла2 As Long, ПоискИзмененийВременноОтключён As Boolean
Const ВременнойИнтервалМеждуПроверками = 2

Public Sub СлежениеЗаФайлом()
On Error Resume Next

If ПоискИзмененийВременноОтключён = False Then Application.StatusBar = Now & "Cheking file"
If ПоискИзмененийВременноОтключён = True Then Application.StatusBar = Now & "Cheking file Stoped"
Do While True ' бесконечный цикл
If Not ПоискИзмененийВременноОтключён Then
НовыйРазмерФайла1 = CreateObject("scripting.filesystemo bject").GetFile(ИмяФайла1).Size
If НовыйРазмерФайла1 > РазмерФайла1 Then DoFile1 (ИмяФайла1): РазмерФайла1 = НовыйРазмерФайла1

НовыйРазмерФайла2 = CreateObject("scripting.filesystemo bject").GetFile(ИмяФайла2).Size
If НовыйРазмерФайла2 > РазмерФайла2 Then DoFile2 (ИмяФайла2): РазмерФайла2 = НовыйРазмерФайла2
End If
t = Timer: While t + ВременнойИнтервалМеждуПроверками > Timer: DoEvents: Wend ' пауза
Loop

End Sub

Запускается этот макрос вот так
Public Sub Startrobot()
If Not ПоискИзмененийВременноОтключён Then СлежениеЗаФайлом
End Sub

а остановить его как... в определенное время суток?
zander вне форума Ответить с цитированием
Старый 28.07.2009, 20:28   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Цитата:
а остановить его как... в определенное время суток?
Код:
Public Sub СлежениеЗаФайлом()
    On Error Resume Next

    If ПоискИзмененийВременноОтключён = False Then Application.StatusBar = Now & "Cheking file"
    If ПоискИзмененийВременноОтключён = True Then Application.StatusBar = Now & "Cheking file Stoped"
    Do While True    ' бесконечный цикл
        If Not ПоискИзмененийВременноОтключён Then
            НовыйРазмерФайла1 = CreateObject("scripting.filesystemo bject").GetFile(ИмяФайла1).Size
            If НовыйРазмерФайла1 > РазмерФайла1 Then DoFile1 (ИмяФайла1): РазмерФайла1 = НовыйРазмерФайла1

            НовыйРазмерФайла2 = CreateObject("scripting.filesystemo bject").GetFile(ИмяФайла2).Size
            If НовыйРазмерФайла2 > РазмерФайла2 Then DoFile2 (ИмяФайла2): РазмерФайла2 = НовыйРазмерФайла2
        End If
        t = Timer: While t + ВременнойИнтервалМеждуПроверками > Timer: DoEvents: Wend    ' пауза
        If Time > "22:28:00" Then Exit Do ' укажите здесь нужное время
    Loop

End Sub
EducatedFool вне форума Ответить с цитированием
Старый 28.07.2009, 20:41   #3
zander
Форумчанин
 
Регистрация: 24.01.2009
Сообщений: 113
По умолчанию

If Time > "22:28:00" Then Exit Do ' укажите здесь нужное время
Loop

End Sub
[/code][/QUOTE]

Спасибо!
А для кнопки какую можно команду указать для остановки?
zander вне форума Ответить с цитированием
Старый 28.07.2009, 20:54   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Попробуйте так:
Код:
Const ИмяФайла1 = "C:\input\Alex.txt", ИмяФайла2 = "C:\input\Alex1.txt"
Public РазмерФайла1 As Long, РазмерФайла2 As Long, ПоискИзмененийВременноОтключён As Boolean
Const ВременнойИнтервалМеждуПроверками = 2

Public Sub СлежениеЗаФайлом()
    On Error Resume Next
    Application.StatusBar = Now & "Cheking file" & IIf(ПоискИзмененийВременноОтключён, " Stopped", "")

    Do While True    ' бесконечный цикл
        If Time > "22:28:00" Or ПоискИзмененийВременноОтключён Then Exit Do    ' укажите здесь нужное время

        НовыйРазмерФайла1 = CreateObject("scripting.filesystemo bject").GetFile(ИмяФайла1).Size
        If НовыйРазмерФайла1 > РазмерФайла1 Then DoFile1 (ИмяФайла1): РазмерФайла1 = НовыйРазмерФайла1

        НовыйРазмерФайла2 = CreateObject("scripting.filesystemo bject").GetFile(ИмяФайла2).Size
        If НовыйРазмерФайла2 > РазмерФайла2 Then DoFile2 (ИмяФайла2): РазмерФайла2 = НовыйРазмерФайла2
        t = Timer: While t + ВременнойИнтервалМеждуПроверками > Timer: DoEvents: Wend    ' пауза
    Loop

End Sub


Public Sub Startrobot()    ' Запускается этот макрос вот так
    If Not ПоискИзмененийВременноОтключён Then СлежениеЗаФайлом
End Sub

Public Sub Stoprobot()    ' А останавливается - так
    ПоискИзмененийВременноОтключён = True
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 28.07.2009, 21:17   #5
zander
Форумчанин
 
Регистрация: 24.01.2009
Сообщений: 113
По умолчанию

Public Sub Stoprobot() ' А останавливается - так
ПоискИзмененийВременноОтключён = True
End Sub
[/code][/QUOTE]

Не хочет он так останавливаться
zander вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос постоянно обрабатывает события. При открытии другой книги макрос обрывается. Ples Microsoft Office Excel 8 17.12.2016 18:15
не могу остановить макрос =( ShuraFK Microsoft Office Excel 2 07.04.2009 13:01
Как остановить процесс Volkogriz Общие вопросы Delphi 1 15.01.2009 10:40
Как остановить поток? Никки Win Api 3 06.12.2007 22:04
Остановить процесс Shurik Hacker Win Api 4 20.07.2007 08:05