как обновить все листы автоматически

#excel #vba

#excel #vba

Вопрос:

У меня есть одна книга, содержащая 7 листов, первый из которых содержит данные, из которых создаются другие листы с помощью power query, я хочу обновлять их все через каждые 10 секунд или если есть какие-то изменения в данных на листе 1, что можно сделать вручную, используя ctrl alt f5 , например, кнопку refreshall

итак, мой вопрос

  1. как обновлять все листы в текущей книге через каждые 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