Excel

Запуск excel по времени: Запуск макроса по времени

Запуск заданий по расписанию в Windows


Краткое описание

В статье рассказывается о возможностях и способах применения стандартного планировщика Windows в связке с преднастроенными макросами и файлами Excel.


Подробное описание

Иногда бывает необходимо, чтобы компьютер выполнял определенные действия без вашего участия. Например, раз в сутки копировался какой-то файл, что-то удалялось, проверялось, запускался некий exe-файл, отправлялись письма, всплывали уведомления и тп. Можно было бы написать vba-макрос, который бы все это делал (макрос для Outlook, Excel и тп). Но чтобы такой макрос работал, нужно держать открытым тот же Outlook, Excel и тд.

Есть решение гораздо проще и удобнее — стандартный планировщик заданий Windows.

1. Открываете планировщик:


2. Нажимаете «Создать простую задачу»:


3. Вводите необходимые параметры (имя задания, время, частота и периодичность запуска и некоторые др. ) и указываете, что нужно сделать:


Если выбрать пункт «Запустить программу», то на следующем шаге вам будет предложено выбрать, какую программу или сценарий вы хотите запустить. Кроме того, вы также можете указать дополнительные аргументы запуска:


Именно пункт «Запустить программу» дает нам очень много свободы действий, ведь в качестве скрипта или программы может быть все, что угодно: vbs/cmd скрипт, excel файл, любое другое приложение. Плюс, можно задать дополнительные параметры (аргументы) запуска.

И что важно, наша операционная система сама будет отслеживать время и необходимость запуска без дополнительных усилий с нашей стороны. Требование одно — должен быть включен компьютер. Если наступило время выполнения задачи, а ПК выключен, то задача будет исполнена, когда компьютер заработает (этот пункт можно настроить: либо игнорировать пропущенную задачу, либо запускать после включения ПК).

Вот такая вроде простая, но многими не востребованная вещь.

Для продвинутых пользователей есть возможность настройки планировщика из командной строки. Кстати, настройка из командной строки может быть очень полезна, когда вы, например, выполняете какой-то макрос в экселе и вам требуется выполнить ряд отложенных действий, а потом снова запустить макрос на продолжение, но уже со следующего этапа. С планировщиком это решается очень просто:

  1. макрос выполняет свою первую часть,
  2. завершает первую часть, через командную строку создает отложенное задание и прекращает свою работу (вплоть до закрытия файла excel),
  3. планировщик отслеживает время запуска нужного задания, запускает задание (например, проверка наличия файла в сети),
  4. по окончании проверки запускает следующее задание — запуск нашего исходного макроса, но уже со второго этапа и с полученным значениям статуса выполнения нашего отложенного задания.

И так сколько угодно раз, исходя из настроек вашего макроса и параметров планировщика.

← Вернуться к списку примеров


Трюк №82. Как запустить макрос в определенное время — MS Excel

Часто вы, наверняка, думаете, как было бы удобно запускать макрос в предопределенное время или через указанные интервалы. К счастью, в Excel предусмотрен метод VBA, который делает это возможным.

При помощи метода Application.OnTime можно запускать макрос автоматически, но сначала необходимо провести небольшую настройку. Предположим, есть макрос, который вы хотите запускать каждый день в 15:00 (3:00 p.m.). Сначала нужно определить, как заставить выполниться метод OnTime. Это можно сделать с помощью события Workbook_0pen в частном модуле для объекта Workbook.

В Windows самый быстрый способ попасть в частный модуль объекта Workbook (ThisWorkbook, Эта Книга) — правой кнопкой мыши щелкнуть значок Excel рядом с меню Файл (File) и в контекстном меню выбрать команду Исходный текст (View Code). (На Macintosh откройте VBE и затем откройте модуль объекта Workbook в окне Project.

) Введите код из листинга 7.2.

1
2
3
4
//Листинг 7.2
Private Sub Workbook Open ()
	Application.OnTime T1meValue("15:00:00"). "MyMacro"
End Sub

Вместо MyMacro следует подставить имя макроса, который вы хотите выполнить. Он должен находиться в стандартном модуле и содержать метод OnTime, как показано в листинге 7.3.

1
2
3
4
5
//Листинг 7.3
Sub MyMacro ()
	Application.OnTime T1meValue("15:00:00"), "MyMacro"
'ВАШ КОД
End Sub

Процедура MyMacro будет запускаться каждый день в 15:00, пока Excel остается открытым.

Теперь предположим, вы хотите выполнять MyMacro каждые 15 минут после открытия книги. И снова вы будете запускать процедуру во время открытия книги, поэтому правой кнопкой мыши щелкните значок Excel рядом с меню Файл (File), выберите команду Исходный текст (View Code) и введите код из листинга 7.4.

1
2
3
4
5
6
7
8
//Листинг 7. 4
Private Sub Workbook_BeforeClose(Cancel As Boolean)
	Application.OnTime dTime. "MyMacro". . False
End Sub
 
Private Sub Workbook_Open()
	Application.OnTime Now + TimeValue("00:15:00"), "MyMacro"
End Sub

В любом стандартном модуле (который можно открыть командой Insert → Module) введите код, приведенный в листинге 7.5.

1
2
3
4
5
6
7
8
//Листинг 7.5
Public dTime As Date
	Sub МуМасrо()
dTime = Now + TimeValue("00:15:00")
Application.OnTime dTime, "MyMacro"
 
'ВАШ КОД
End Sub

Обратите внимание, что.вы передаете значение времени, равное 15 минутам, общей (public) переменной dTime. Это нужно, чтобы вы могли отменить метод OnTime в событии Workbook_BeforeC1ose, присвоив дополнительному аргументу Schedule значение Ложь (False). По умолчанию его значение равно Истина (True), поэтому, изменив значение на Ложь (False), вы приказываете Excel отменить метод OnTime, настроенный на выполнение в указанное время.

Если не передать время в переменную, Excel не будет знать, какой метод OnTime нужно отменить, так как значение Now + TimeValue(«00:15:00») не является статическим, но становится статическим, когда передается в переменную. Если вы не присвоите дополнительному аргументу Schedule значение Ложь (False), рабочая книга будет автоматически открываться каждые 15 минут, после того как вы закроете ее, и выполнять макрос MyMacro.

Следите за временем в Excel — Блог Contextures

Если вы работаете над проектом, вам может понадобиться отслеживать время в Excel, чтобы вы могли сообщить клиенту, сколько времени вы потратили на его проект, и получить оплату за свою работу. Или используйте данные о времени, чтобы узнать, сколько времени вы тратите на продуктивные задачи, а сколько тратите на гугление и твиты.

Введите текущее время

Чтобы рассчитать время, затраченное на задачу, вам потребуется время начала и время окончания.

Чтобы быстро ввести текущее время в Excel, используйте сочетание клавиш:  Ctrl + Shift + ;

  • При запуске задачи используйте ярлык, чтобы ввести время начала в одной ячейке.
  • Когда вы закончите работу над задачей, используйте ярлык в соседней ячейке, чтобы ввести время окончания.

На приведенном ниже снимке экрана время начала задачи указано в столбце B, а время окончания — в столбце C.

Расчет истекшего времени

Основываясь на времени начала и окончания, вы можете рассчитать прошедшее время, вычитая время начала из времени окончания.

В этом примере я вычислю время в ячейке D2, используя следующую формулу:

=C2-B2

Формат истекшего времени

Разница между временем начала и окончания составляет 15 минут. в этом примере, но ячейка результата показывает время – 00:15

Чтобы увидеть результат в виде часов и минут прошедшего времени, измените формат:

  1. Выберите ячейку D2, где вычисляется прошедшее время
  2. Нажмите Ctrl + 1, чтобы открыть диалоговое окно «Формат ячеек».
  3. На вкладке «Число» выберите категорию «Время».
  4. Нажмите на формат 37:30:55, затем нажмите OK

Этот формат отображает общее количество часов, минут и секунд. Ячейка D2 теперь показывает прошедшее время 15 минут.

Ошибка формулы при отсутствии времени окончания

Формула работает корректно, если введены время начала и время окончания. Но возникает проблема, если введено только время начала.

Результат в ячейке D3 — отрицательное число, поскольку время начала вычитается из нуля (значение пустой ячейки C3).

Excel отображает отрицательные даты и время как #####.

Чтобы избежать этой проблемы, добавьте функцию ЕСЛИ в формулу в ячейке D2 и скопируйте ее в ячейку D3: формула проверяет ячейку C2, и если она пуста, результат формулы равен нулю.

Ошибка формулы после полуночи

Если вы сжигаете масло в полночь на клиентских проектах, вы столкнетесь с другой ошибкой. На снимке экрана ниже время начала задачи 3 — 22:30, а я работал после полуночи — окончание в 00:30.

Результатом формулы является отрицательное число, поскольку время окончания меньше времени начала.

Чтобы решить эту проблему, измените формулу еще раз. Если время начала больше времени окончания, предполагается, что задача завершилась на следующий день.

В этом случае добавьте 1 к времени окончания, что эквивалентно добавлению полного дня к времени окончания. Это делает время окончания больше, чем время начала, и расчет будет работать правильно.

=IF(C2=»»,0,IF(B2>C2,1,0)+C2-B2)

Добавьте время задачи

Чтобы получить общее время для всех ваших задач, используйте функция СУММ. Он должен автоматически отформатировать общую ячейку в формате 37:30:55, но если нет, вы можете отформатировать ячейку вручную.

=СУММ(D2:D4)

________________

Автор Дебра ДалглейшОпубликовано Категории Формулы Excel 9Функция 0000 ВРЕМЯ — служба поддержки Майкрософт

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Excel Starter 2010 Дополнительно… Меньше

В этой статье описаны синтаксис формулы и использование функции ВРЕМЯ в Microsoft Excel.

Описание

Возвращает десятичное число для определенного времени. Если до ввода функции формат ячейки был

Общий , результат будет отформатирован как дата.

Десятичное число, возвращаемое функцией TIME, представляет собой значение в диапазоне от 0 (ноль) до 0,99988426, представляющее время от 0:00:00 (00:00:00) до 23:59:59 (23:59:59). .

Синтаксис

ВРЕМЯ(час,минута,секунда)

Синтаксис функции ВРЕМЯ имеет следующие аргументы:

  • org/ListItem»>

    Час     Обязательно. Число от 0 (ноль) до 32767, обозначающее час. Любое значение больше 23 будет разделено на 24, а остаток будет считаться значением часа. Например, ВРЕМЯ(27,0,0) = ВРЕМЯ(3,0,0) = 0,125 или 3:00.

  • Минута     Обязательно. Число от 0 до 32767, обозначающее минуты. Любое значение больше 59будут преобразованы в часы и минуты. Например, ВРЕМЯ(0,750,0) = ВРЕМЯ(12,30,0) = 0,520833 или 12:30.

  • Второй     Обязательный. Число от 0 до 32767, представляющее секунды. Любое значение больше 59 будет преобразовано в часы, минуты и секунды. Например, ВРЕМЯ(0,0,2000) = ВРЕМЯ(0,33,22) = .023148 ​​или 00:33:20

Примечание

Значения времени являются частью значения даты и представлены десятичным числом (например, 12:00 представляется как 0,5, поскольку это половина дня).

Пример

Скопируйте данные примера из следующей таблицы и вставьте их в ячейку A1 нового рабочего листа Excel. Чтобы формулы отображали результаты, выберите их, нажмите F2, а затем нажмите клавишу ВВОД. При необходимости вы можете настроить ширину столбцов, чтобы увидеть все данные.

час

Минута

Второй

12

0

0

16

48

10

Формула

Описание

Результат

=ВРЕМЯ(A2,B2,C2)

Десятичная часть суток для времени, указанного в строке 2 (12 часов, 0, минут, 0 секунд)

0,5

=ВРЕМЯ(A3,B3,C3)

Десятичная часть суток для времени, указанного в строке 3 (16 часов, 48 минут, 10 секунд)

0,7001157

См.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *