Application.OnTime абсолютно на 100% надежен и, безусловно, не опасен. Тем не менее, это только , предоставляемое через VBA, и вы по какой-то причине рассматриваете VBA как «нет, нет», так что эта опция может показаться вам недоступной.
Как правило, я бы не использовал OnTime для долгосрочного планирования, такого как планирование Excel для выполнения команды каждый день в 17:00. Проблема в том, что если пользователь закрывает Excel, тогда планирование OnTime теряется. В этом случае вам потребуется использовать планировщик задач или создать собственное приложение или службу Windows, чтобы открыть Excel и выполнить ваши команды.
Однако для планирования события, которое будет происходить каждые 120 секунд, использование Application.OnTime было бы идеальным для этого - вам просто нужно было бы повторно запланировать OnTime, чтобы оно повторялось через 120 секунд каждый раз, когда OnTime перезванивает, поскольку OnTime срабатывает только один раз в расписании, а не на повторной основе. Я бы абсолютно использовал VBA для этой задачи. Если вы не хотите, чтобы VBA начинал действие, это нормально: просто поместите VBA в рабочую книгу, которая затем открывается вашей программой или через планировщик задач. С этого момента код VBA может срабатывать каждые 120 секунд.
Имеет смысл?