Страницы: 1
RSS
Запуск макроса по расписанию
 
Добрый день.    
В макросах я вообще валинок. Записал простейший макрос :  
Sub Макрос4()  
'  
' Макрос4 Макрос  
'  
 
'  
   Range("H1").Select  
   Application.CutCopyMode = False  
   ActiveCell.FormulaR1C1 = ""  
   Range("I3").Select  
   ActiveWorkbook.Save  
End Sub  
 
Нашел пост в котором прописан как сделать так что он запускался каждые 5 сек (это идеальный для меня вариант) но не смог понять как там и что :  
там описан следующий способ :  
Нет никаких сложностей с том, чтобы запустить в Excel макрос, который бы исполнялся с установленной периодичностью. ДЛя этого нужно пользоваться методом OnTime. Например:  
 
Вставьте этот код в модуль книги:  
 
Public oldValue As Variant  
Private Sub Workbook_Open()  
oldValue = False  
Call myMacro  
End Sub  
 
А этот код в стандартный модуль процедур:  
 
Sub myMacro()  
Dim sh As Worksheet  
Application.OnTime Now() + TimeSerial(0, 0, 5), "myMacro"  
Set sh = ActiveWorkbook.Sheets(1)  
If sh.Cells(1, 1) <> oldValue Then  
Debug.Print Time  
'... код макроса, который будет исполняться не чаще чем, каждые 5 секунд каждый раз,  
'как только значение в ячейке А1 в первом листе книги изменится  
End If  
End Sub  
 
При открытии книги с такой парой макросов процедура myMаcro будет вызываться каждые 5 секунд пока открыта книга, и код внутри блока If будет исполняться каждый раз, если за очередные 5 сек. ячейка А1 изменилась.  
Мне не понятно где находиться модуль книги ?    
И как я понял там ссылается на изменение значение ячейке A1 - возможно что бы без проверки а каждые 5 сек срабатывал.    
Заранее большое спасибо
 
> Мне не понятно где находиться модуль книги ?  
Редактор VBA, левая (обычно) панель, дерево проекта, объект ЭтаКнига или ThisWorkbook - двойной клик на нем.  
 
> возможно что бы без проверки а каждые 5 сек срабатывал  
в myMacro оставьте только  
 
Application.OnTime Now() + TimeSerial(0, 0, 5), "myMacro"  
хотя лучше  
Application.OnTime Now() + #0:0:5#, "myMacro" 'будет автоматически преобразовано  
 
вместо остального впишите свои команды или вызов своего макроса.  
 
Потом Вы столкнетесь с тем, что перед закрытием книги запуск макроса по расписанию надо отменять... но это потом :)
 
Спасибо все получилось.
Страницы: 1
Читают тему
Loading...