2017-02-20 4 views
0

У меня есть данные в реальном времени, которые нужно обновлять каждый час в excel, через дополнительный агент Reuters. Обычно это будет автоматически, но потому, что я питаюсь через разные данные, он будет обновляться, только если вы вручную нажмете кнопку «Обновить». Поэтому, если я не смогу найти способ заставить мой VBA нажимать эту кнопку один раз в час, вся моя модель бесполезна ... ха-ха!Получение VBA для нажатия кнопки на панели инструментов addin ... CommandBars?

Я читал, что такая задача может быть возможна через commandBars, но, честно говоря, я изо всех сил пытаюсь понять примеры, которые находятся в сети.

Любая помощь будет высоко оценена.

Thanks,

ответ

0

Вы можете попробовать эту кусочек кода. Вы можете запустить планировщик, который будет запускать макрос, чтобы инициировать макрос, который вам нужен, с фиксированными интервалами.

Private Sub Workbook_Open() 

Do While TimeValue(Now) < "23:59:59" 
    ' Enter the name of the Macro that you want to run in the NAME OF MACRO field 
    Application.OnTime TimeValue(Now), "NAME OF MACRO" 

    newHour = Hour(Now()) 
    newMinute = Minute(Now()) + 10 
    newSecond = Second(Now()) 
    waitTime = TimeSerial(newHour, newMinute, newSecond) 
    'Waits for 10 minutes 
    Application.Wait waitTime 
Loop 

End Sub 

Запустите этот макрос в открывшемся рабочем столе. Самый быстрый способ попасть в частный модуль объекта Workbook (ThisWorkbook) - щелкнуть правой кнопкой мыши значок Excel рядом с «Файл» и выбрать «Просмотреть код». Я запланировал его до 10 минут. Вы можете изменить его в соответствии с необходимой вами частотой.

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

Надеюсь, что это решение поможет вам! Дайте мне знать, если вам нужна дополнительная помощь.

+0

'OnTime' - хороший вариант, но он не реализован должным образом, см. Http://www.cpearson.com/excel/OnTime.aspx. Использование 'Application.Wait' будет держать Excel застрявшим в VBA. – R3uK

Смежные вопросы