подвежда №82

Често, със сигурност, че това би било удобно да се изпълнява макрос в предварително определено време или през определени интервали. За щастие, Excel VBA предлага метод, който дава възможност.

Когато Application.OnTime метод може да се използва за изпълнение на макрос автоматично, но първо трябва да се проведе малка настройка. Да предположим, че имате макрос, който искате да изпълните всеки ден от 15:00 (15:00). Първо трябва да се определи как да се изпълнява метод OnTime. Това може да стане с помощта на Workbook_0pen събития в частния модул за обекта работна книга.

В Windows, най-бързият начин да получите в частния модул обекта работна книга (ThisWorkbook, тази книга) - Щракнете с десния бутон върху иконата на Excel до менюто File (Файл) и изберете Source Code (Виж Code) в контекстното меню. (В Macintosh, отворете VBE и след това отворете модул Работна книга на обект в прозореца Project.) Въведете кода в Обява 7.2.

// Обява 7.2 Частни Под работна книга Open () Application.OnTime T1meValue ( "15:00:00"). "MyMacro" End Sub

Вместо MyMacro трябва да замени името на макроса, който искате да изпълните. Тя трябва да бъде поставен в стандартен модул и съдържа метода OnTime, както е показано на Обявата 7.3.

// Обява 7.3 Sub MyMacro () Application.OnTime T1meValue ( "15:00:00"), "MyMacro" Вашият код End Sub

процедура MyMacro ще работи всеки ден от 15:00, а Excel е отворен.

Сега предполагам, че искате да извършите MyMacro на всеки 15 минути след отварянето на книгата. Отново ще тече процедурата по време на откриването на книгата, така че щракнете с десния бутон върху иконата на Excel до иконата на файла (File), изберете изходен код (Виж Code) и въведете кода на Обява 7.4.

// Обява 7.4 Private Sub Workbook_BeforeClose (Отмени Както Булева) Application.OnTime dTime. "MyMacro". False End Sub Private Sub Workbook_Open () Application.OnTime сега + TIMEVALUE ( "00:15:00"), "MyMacro" End Sub

Във всеки стандартен модул (който можете да отворите командата Insert → Module), въведете кода от картинката в Обява 7.5.

// Обява 7.5 Публична dTime Както Дата Sub MuMasro () dTime = Сега + TIMEVALUE ( "00:15:00") Application.OnTime dTime "MyMacro" Вашият код End Sub

Забележка chto.vy премине на времевата стойност на 15 минути, с общ (публичен) променлива dTime. Това е необходимо, за да отмените метода на OnTime в Workbook_BeforeC1ose събитие чрез възлагане на допълнителни аргументи График Фалшиви (False). Стойността по подразбиране е TRUE (True), така че чрез промяна на стойността на False (False), можете да поръчате, за да отмените метода на Excel OnTime конфигурирана да се изпълнява в определен час.

Ако не мине време в променлива, Excel няма да знаете кой метод OnTime трябва да откажете, защото стойността на А + TIMEVALUE ( «00:15:00») не е статичен, но става статичен, когато премина в променливата. Ако зададете допълнителен аргумент График False (False), работната книга ще се отвори автоматично на всеки 15 минути, след като го затворите, и направи MyMacro макро.