Приложение Excel.OnTime

#excel #vba #timer

#excel #vba #таймер

Вопрос:

Я пытаюсь использовать Application.OnTime метод VBAs для вызова функции каждую минуту. Код, который у меня есть до сих пор, выглядит следующим образом.

Определяется глобально:

 Dim alertTime As Date
  

В одном из первых методов, который вызывается:

 alertTime = Now   TimeValue("00:00:10")
Application.OnTime alertTime, "myFunc"
  

В myFunc методе:

 alertTime = Now   TimeValue("00:00:10")
Application.OnTime alertTime, "myFunc"
  

через 10 секунд после запуска макроса я получаю диалоговое окно с предупреждением Error loading DLL . Я не указал никаких других библиотек DLL, которые будут загружены в myFunc метод, так что, похоже, это не проблема. Есть ли дополнительная библиотека, которую мне нужно включить для использования Application.OnTime ?

Ответ №1:

Не должно быть, myFunc находится в том же пространстве имен? Если myFunc не находится в вашем пространстве имен или еще не создан как макрос, по умолчанию используется приложение.Вместо этого OnTime будет искать модуль с именем myFunc .

Комментарии:

1. Это звучит примерно так. Знаете ли вы какие-нибудь хорошие учебные пособия по использованию пространств имен или модулей? Ничто из того, что я понимаю из C, кажется, не очень хорошо переводится.

2. cpearson.com/excel/codemods.htm является достойным руководством по модулям Excel, msdn.microsoft.com/en-us/library/bb221399 (v = office.12).aspx содержит некоторую информацию, непосредственно связанную с вашим приложением. OnTime, надеюсь, это поможет вам!