Note: The other languages of the website are Google-translated. Back to English

Як повторити або повторити макрос кожні X хвилини в Excel?

Під час роботи з Microsoft Excel, можливо, вам доведеться створити макроси для виконання деяких операцій. Наприклад, ви хочете створити макрос для автоматичного копіювання діапазону даних на нове місце. Оскільки дані будуть часто змінюватися, вам потрібно, щоб цей макрос автоматично запускався кожні 5 хвилин, не запускаючи його вручну, щоб синхронізувати ці два діапазони даних. Як цього досягти? Метод у цій статті може вам допомогти.

Повторюйте або повторюйте макрос кожні X хвилин у програмі Excel


Повторюйте або повторюйте макрос кожні X хвилин у програмі Excel

Наступний код VBA може допомогти вам повторювати макрос кожні X хвилин у програмі Excel. Будь ласка, виконайте наступне.

1. прес інший + F11 клавіші одночасно, щоб відкрити Microsoft Visual Basic для додатків вікна.

2 В Microsoft Visual Basic для додатків вікно, натисніть Insert > Модулі. Потім скопіюйте та вставте наведений нижче код VBA в код вікно. Дивіться знімок екрана:

Код VBA: Повторюйте або повторюйте макрос кожні X хвилин у програмі Excel

Sub ReRunMacro()
Dim xMin As String

'Insert your code here
    xMin = GetSetting(AppName:="Kutools", Section:="Macro", Key:="min", Default:="")
    If xMin = "Exit" Then
    SaveSetting "Kutools", "Macro", "min", "False"
    Exit Sub
    End If
    If (xMin = "") Or (xMin = "False") Then
      xMin = Application.InputBox(prompt:="Please input the interval time you need to repeat the Macro", Title:="Kutools for Excel", Type:=2)
      SaveSetting "Kutools", "Macro", "min", xMin
    End If
    If (xMin <> "") And (xMin <> "False") Then
      Application.OnTime Now() + TimeValue("0:" + xMin + ":0"), "ReRunMacro"
    Else
      Exit Sub
    End If
End Sub

примітки: У коді, будь ласка, замініть цей рядок 'Вставте сюди свій код з кодом, який ви будете запускати кожні X хвилин.

3 Натисніть кнопку F5 клавіша для запуску коду. У спливаючому Kutools for Excel діалогове вікно, введіть час інтервалу, за яким ви будете повторювати макрос, і натисніть кнопку OK кнопку. Дивіться знімок екрана:

Відтепер певний макрос буде запускатись кожні 5 хвилин у вашій книзі.

примітки: Якщо вам потрібно зупинити виконання макросу та змінити інтервал циклу, скопіюйте наведений нижче код VBA в той самий Модулі вікно та натисніть F5 клавіша для запуску коду. Тоді макрос буде зупинено. Будь ласка, повторіть наведений вище код, щоб вказати новий інтервал.

Код VBA: зупиніть виконання макросу

Sub ExitReRunMacro()
SaveSetting "Kutools", "Macro", "min", "Exit"
End Sub

Вкладка Office - Перегляд, редагування та управління книгами в Excel із вкладками:

Вкладка Office переносить інтерфейс із вкладками, як це видно у веб-браузерах, таких як Google Chrome, нові версії Internet Explorer та Firefox, до Microsoft Excel. Це буде інструментом, який економить час і незамінний у вашій роботі. Дивіться нижче демонстрацію:

Клацніть на безкоштовну пробну версію вкладки Office!

Вкладка Office для Excel


Статті по темі:


Найкращі інструменти для підвищення продуктивності офісу

Kutools for Excel Вирішує більшість ваших проблем і підвищує вашу продуктивність на 80%

  • Повторне використання: Швидко вставте складні формули, діаграми і все, що ви використовували раніше; Шифрувати комірки з паролем; Створити список розсилки та надсилати електронні листи ...
  • Супер формула бар (легко редагувати кілька рядків тексту та формули); Макет читання (легко читати та редагувати велику кількість комірок); Вставте у відфільтрований діапазон...
  • Об’єднати клітинки / рядки / стовпці без втрати даних; Вміст розділених комірок; Об'єднати повторювані рядки / стовпці... Запобігання дублюючим клітинам; Порівняйте діапазони...
  • Виберіть Повторюваний або Унікальний Рядки; Виберіть Пусті рядки (усі клітинки порожні); Супер знахідка та нечітка знахідка у багатьох робочих зошитах; Випадковий вибір ...
  • Точна копія Кілька клітинок без зміни посилання на формулу; Автоматичне створення посилань на кілька аркушів; Вставте кулі, Прапорці та інше ...
  • Витяг тексту, Додати текст, Видалити за позицією, Видаліть пробіл; Створення та друк проміжних підсумків підкачки; Перетворення вмісту комірок та коментарів...
  • Супер фільтр (зберегти та застосувати схеми фільтрів до інших аркушів); Розширене сортування за місяцем / тижнем / днем, частотою та іншим; Спеціальний фільтр жирним, курсивом ...
  • Поєднайте робочі зошити та робочі аркуші; Об’єднати таблиці на основі ключових стовпців; Розділіть дані на кілька аркушів; Пакетне перетворення xls, xlsx та PDF...
  • Понад 300 потужних функцій. Підтримує Office / Excel 2007-2021 і 365. Підтримує всі мови. Легке розгортання на вашому підприємстві чи в організації. 30-денна безкоштовна пробна версія повних функцій. 60-денна гарантія повернення грошей.
вкладка kte 201905

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Коментарі (31)
Поки немає оцінок. Оцініть першим!
Цей коментар був мінімізований модератором на сайті
Чудовий! Будь ласка, як мені зупинити цикл після 10 разів?
Цей коментар був мінімізований модератором на сайті
Хороший день,
Ви можете перейти у вікно коду, щоб розбити код (натисніть кнопку Розрив), щоб зупинити цикл.
Цей коментар був мінімізований модератором на сайті
Хороший день! Я не зрозумів, як зламати код макросу, щоб знову встановити час виконання циклу. Чи не могли б ви описати детальніше, як це зробити? Де записується значення часу циклу виконання?
Цей коментар був мінімізований модератором на сайті
Привіт джек
Моя помилка.
У кінці статті додано новий код VBA, який може зупинити макрос. Будь ласка, спробуйте. Дякуємо за коментар.
Цей коментар був мінімізований модератором на сайті
Дякую за це, працює насолода. Я новачок у програмуванні, тому вибачте мене, якщо це просто...

Як зробити так, щоб діалогове вікно з’явилося знову? У мене він застряг на 1-хвилинній петлі. Спасибі.
Цей коментар був мінімізований модератором на сайті
Хороший день,
Просто зламайте код і запустіть його знову.
Цей коментар був мінімізований модератором на сайті
Привіт!
Це чудово, але чи є спосіб змусити його повертатися до першого рядка електронної таблиці, перш ніж почати знову?


Спасибо!
Цей коментар був мінімізований модератором на сайті
Підкажіть більше, як зупинити виконання макросу і змінити інтервал циклу?
Цей коментар був мінімізований модератором на сайті
Підкажіть більше, як зупинити виконання макросу і змінити інтервал циклу?
Цей коментар був мінімізований модератором на сайті
добрий день,
У кінці статті додано новий код VBA, який може зупинити макрос. Будь ласка, спробуйте. Дякуємо за коментар.
Цей коментар був мінімізований модератором на сайті
Будь ласка, надайте код для:


"Як повторювати або зациклювати макрос кожні Х секунд в Excel"


Дякую
Цей коментар був мінімізований модератором на сайті
привіт,
Будь ласка, змініть рядок "Application.OnTime Now() + TimeValue("0:" + xMin + ":0"), "ReRunMacro"" на
Application.OnTime Now() + TimeValue("0:" + "0:" + xMin), "ReRunMacro"
Цей коментар був мінімізований модератором на сайті
агов
У мене є запит, ваші коди працюють чудово і копіюють дані в моїх наступних стовпцях кожні 5 хвилин, але через 3 години всі мої стовпці заповнюються, оскільки це 2003 excel. Чи не могли б ви допомогти мені з кодом, щоб перевірити, чи немає інших стовпців, а потім створіть новий аркуш та скопіюйте дані в цей аркуш
Цей коментар був мінімізований модератором на сайті
Привіт, просто допоможіть мені "вставити свій код тут". Я новачок і мені потрібна допомога, що і як заповнити! Дякую, я не правильно розумію
Цей коментар був мінімізований модератором на сайті
Привіт Падма,
"Вставте свій код тут" вказує на код VBA, який ви використовуєте для виконання певних операцій в Excel. Припустимо, що вам потрібно застосувати VBA, щоб перемістити рядок на інший аркуш на основі певного значення, і ви хочете автоматично запускати код кожні X хвилин, вам потрібно розмістити код VBA тут.
Цей коментар був мінімізований модератором на сайті
Привіт, я наплутався і встановив час на 0.5, і тепер я не можу його змінити, є ідеї, як змінити налаштування xMin?
Цей коментар був мінімізований модератором на сайті
Привіт, Девід.

Як ми згадували в кінці публікації, якщо вам потрібно зупинити виконання макросу та змінити інтервал циклу, скопіюйте наведений нижче код VBA в те саме вікно модуля та натисніть клавішу F5, щоб запустити код. Тоді макрос буде зупинено, будь ласка, повторно запустіть наведений вище код, щоб вказати новий інтервал.



Sub ExitReRunMacro()

SaveSetting "Kutools", "Macro", "min", "Exit"

End Sub
Цей коментар був мінімізований модератором на сайті
Гей, дякую! але я боюся, що Марко навіть не запускається, коли я натискаю F5, Excel надсилає мені таке повідомлення про помилку: Помилка часу виконання 13 «Тип невідповідність».



Я видалив його, але якщо я спробую створити його знову, з’явиться те саме повідомлення про помилку, єдина моя припущення полягає в тому, що я встановив час як 0.5 і в коді, тому не знаю, як змінити його зараз.



Ще раз дякую за вашу допомогу.
Цей коментар був мінімізований модератором на сайті
Привіт, дуже корисно, але я думаю, що я наплутався і встановив час як 0.5, і тепер я не можу його змінити, є ідеї, як змінити налаштування xMin?
Цей коментар був мінімізований модератором на сайті
Як створити макрос в Excel з безперервним циклом і натиснутою клавішею буде лише pg вгору і pg вниз
Цей коментар був мінімізований модератором на сайті
Привіт Джек! Я помилково ввів 0.5 хвилини, і він показує помилку,
Я маю на увазі, що xMin приймається за 0.5 хвилини.
Як позбутися і змінити на 1 хв?
Цей коментар був мінімізований модератором на сайті
Привіт, LIMCA!
Вибачте за незручності. Код не підтримує введення десяткових дробів.

Будь ласка, зупиніть цикл, запустивши наведений нижче код VBA, а потім повторно запустіть код циклу та введіть 1 у спливаюче діалогове вікно.

Sub ExitReRunMacro()

SaveSetting "Kutools", "Macro", "min", "Exit"

End Sub
Цей коментар був мінімізований модератором на сайті
Я вставляю код нижче, в якому я замінив рядок, щоб ввести код своїм кодом. Помилка, яку я отримую: помилка компіляції: очікуваний кінцевий підряд. Будь ласка, допоможіть.

Sub ReRunMacro()
Dim xMin як рядок
Додаткове оновлення()
'
' Оновити макрос
'

'
Листи("Аркуш1").Виберіть
ActiveWorkbook.RefreshAll
Таблиці("Півот-тире").Виберіть
End Sub


xMin = GetSetting(AppName:="Kutools", Section:="Macro", Key:="min", Default:="")
Якщо xMin = "Вийти", Тоді
SaveSetting "Kutools", "Macro", "min", "False"
Exit Sub
End If
Якщо (xMin = "") або (xMin = "False"), то
xMin = Application.InputBox(prompt:="Введіть інтервал часу, який потрібен для повторення макросу", Title:="Kutools for Excel", Тип:=2)
SaveSetting "Kutools", "Macro", "min", xMin
End If
Якщо (xMin <> "") і (xMin <> "False"), то
Application.OnTime Now() + TimeValue("0:" + xMin + ":0"), "ReRunMacro"
Ще
Exit Sub
End If
Цей коментар був мінімізований модератором на сайті
Доброго дня! Вам потрібно видалити підрядок і кінцевий підрядок зі свого коду. Додаткове оновлення()
'
' Оновити макрос
'

'
Листи("Аркуш1").Виберіть
ActiveWorkbook.RefreshAll
Таблиці("Півот-тире").Виберіть
Завершити підзміну на: '
' Оновити макрос
'

'
Листи("Аркуш1").Виберіть
ActiveWorkbook.RefreshAll
Таблиці("Півот-тире").Виберіть
Цей коментар був мінімізований модератором на сайті
có cách nào dừng макрос khi tắt файл và макрос tự khởi động lại khi mở lại файл không add
Цей коментар був мінімізований модератором на сайті
У Excel 365 я отримую помилку під час виконання "13" Невідповідність типу в такому рядку: Application.OnTime Now() + TimeValue("0:" + "0:" + xMin), "ReRunMacro"
Цей коментар був мінімізований модератором на сайті
Привіт, Рон Франклін, я спробував це в Excel 365, але цю проблему не вдалося відтворити. 
Цей коментар був мінімізований модератором на сайті
Помилка компіляції:

Очікуваний кінець суб

Mam przekopiowane doładnie jak jest napisane wyzej i nie moge odnaleźć problemu
Цей коментар був мінімізований модератором на сайті
Привіт, Павід,
Чи можете ви надати знімок екрана з помилкою та виділеним рядком у коді vba? Проблему не вдалося відтворити в моєму випадку. Вибачте за незручності.
Цей коментар був мінімізований модератором на сайті
klo mengulang Makro sebanyak 3 kali, atau seberapa kali yang kita mau, itu gi mana yahh ? trima kasih sebelumny...
Цей коментар був мінімізований модератором на сайті
Привіт Різал,

Наведений нижче код VBA може допомогти. Будь ласка, спробуйте. Дякую тобі.
Примітки. У коді вам потрібно налаштувати наступні рядки відповідно до ваших потреб:
1) У цьому рядку: Якщо Val(xNum) = 3 Тоді
Тут число 3 означає кількість разів, які ви хочете повторити макрос. Після трьох циклів макрос зупиниться. Змініть його необхідну кількість разів.
2) У цьому рядку: Application.OnTime Now() + TimeValue("0:" + "0" + ":10"), "ReRunMacro"
Число 10 тут означає, що макрос повторюватиметься кожні 10 секунд. За потреби можна вказати години, хвилини та секунди.
Sub ReRunMacro()
'Updated by Extendoffice 20230203
Dim xMin As String
Dim xNum As String
'Insert your code here

Dim xRg As Range
    Dim xCell As Range
    Dim I As Long
    Dim J As Long
    Dim K As Long
    I = Worksheets("Sheet1").UsedRange.Rows.Count
    J = Worksheets("Sheet2").UsedRange.Rows.Count
    If J = 1 Then
    If Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0 Then J = 0
    End If
    Set xRg = Worksheets("Sheet1").Range("C1:C" & I)
    On Error Resume Next
    Application.ScreenUpdating = False
    For K = 1 To xRg.Count
        If CStr(xRg(K).Value) = "Done" Then
            xRg(K).EntireRow.Copy Destination:=Worksheets("Sheet2").Range("A" & J + 1)
            J = J + 1
        End If
    Next
    Application.ScreenUpdating = True

    xMin = GetSetting(AppName:="Kutools", Section:="Macro", Key:="min", Default:="")
    xNum = GetSetting(AppName:="Kutools", Section:="Macro", Key:="Num", Default:="")
    If xMin = "Exit" Then
    SaveSetting "Kutools", "Macro", "min", "False"
    Exit Sub
    End If
    
    If xNum = "" Then xNum = "1"
    If Val(xNum) = 3 Then 'Here the number 3 represents the number of times you want to repeat the macro. After three times looping, the macro will stop
        xNum = 1
        SaveSetting "Kutools", "Macro", "Num", "1"
        Application.OnTime EarliestTime:=TimeValue("17:00:00"), Procedure:="ReRunMacro", Schedule:=False
        Exit Sub
    End If
    xNum = Str(Val(xNum) + 1)
    SaveSetting "Kutools", "Macro", "Num", xNum

    If (xMin = "") Or (xMin = "False") Then
      xMin = Application.InputBox(prompt:="Please input the interval time you need to repeat the Macro", Title:="Kutools for Excel", Type:=2)
      SaveSetting "Kutools", "Macro", "min", xMin
    End If
    
    If (xMin <> "") And (xMin <> "False") Then
      Application.OnTime Now() + TimeValue("0:" + "0" + ":10"), "ReRunMacro" 'The number 10 here means that the macro will repeat every 10 seconds. You can specify the hours, minutes and seconds as you need.
    Else
      Exit Sub
    End If
End Sub
There are no comments posted here yet

Слідуй за нами

Copyright © 2009 - WWW.extendoffice.com. | Всі права захищені. На основі ExtendOffice. | Карта сайту
Microsoft та логотип Office є товарними знаками або зареєстрованими товарними знаками Microsoft Corporation у США та / або інших країнах.
Захищений Sectigo SSL