#excel #vba
#excel #vba
Вопрос:
У меня есть одна книга, содержащая 7 листов, первый из которых содержит данные, из которых создаются другие листы с помощью power query, я хочу обновлять их все через каждые 10 секунд или если есть какие-то изменения в данных на листе 1, что можно сделать вручную, используя ctrl alt f5
, например, кнопку refreshall
итак, мой вопрос
- как обновлять все листы в текущей книге через каждые 10 секунд с помощью макроса
Редактировать
i tried this code
Public interval As Double
Sub macro_timer()
interval = Now TimeValue("00:00:10")
Application.OnTime interval, "my_macro"
End Sub
Sub my_macro()
ThisWorkbook.RefreshAll
Call macro_timer
End Sub
рабочая книга обновляется один раз, и через 10 секунд я получаю следующую ошибку
: я включил макросы из настроек макросов, а также разрешил доверенный доступ к объектной модели проекта vba. тем не менее, я получаю ту же ошибку
Комментарии:
1. Есть ли у вас это в модуле листа или вставленном модуле. Вы переименовали указанный модуль, который имеет то же имя, что и ваш макрос? Как вы запускаете макрос для запуска? Вы пробовали поискать ошибку в Google и попробовать решения, предложенные в других вопросах об этой ошибке? Другим потенциальным способом может быть вставка нового модуля и перемещение кода в этот модуль, а затем удаление старого.
2. 1) имейте это в модуле листа 2) как я инициирую -> просмотр макросов-> выберите макрос, который я хочу запустить -> нажмите выполнить 3) погуглил ошибку, разрешение, упомянутое в последних двух строках вопроса, которое не сработало в моем случае
Ответ №1:
Это сработало для меня
Public interval As Double
Sub macro_t()
interval = Now TimeValue("00:00:10")
ThisWorkbook.RefreshAll
Application.OnTime interval, "macro_t"
End Sub