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

如何在Excel中每X分鐘重複或循環一次宏?

在使用Microsoft Excel時,您可能需要創建宏以實現某些操作。 例如,您要創建一個宏以自動將一系列數據複製到新位置。 由於數據將經常更改,因此您需要此宏每5分鐘自動運行一次,而無需手動觸發它以同步這兩個數據范圍。 如何實現呢? 本文中的方法可以為您提供幫助。

每隔X分鐘在Excel中重複或循環一次宏


每隔X分鐘在Excel中重複或循環一次宏

下面的VBA代碼可以幫助您每隔X分鐘在Excel中重複一次宏。 請執行以下操作。

1。 按 其他 + F11 鍵同時打開 Microsoft Visual Basic for Applications 窗口。

2。 在裡面 Microsoft Visual Basic for Applications 窗口,請點擊 插入 > 模塊。 然後將以下VBA代碼複製並粘貼到 推薦碼 窗口。 看截圖:

VBA代碼:在Excel中每X分鐘重複或循環一次宏

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 鍵來運行代碼。 在彈出 Excel的Kutools 對話框,請輸入您要重複執行宏的間隔時間,然後單擊 OK 按鈕。 看截圖:

從現在開始,某個宏將在您的工作簿中每5分鐘重複運行一次。

備註:如果您需要停止執行宏並更改週期間隔,請複制以下VBA代碼到同一宏中 模塊 窗口,然後按 F5 鍵來運行代碼。 然後宏將停止,請重新運行上面的代碼以指定新的間隔。

VBA代碼:停止執行宏

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

Office Tab -Excel中的工作簿的選項卡式瀏覽,編輯和管理:

Office選項卡將選項卡式界面帶到Microsoft Excel中的Web瀏覽器(如Google Chrome,Internet Explorer新版本和Firefox)中。 這將是一種節省時間的工具,並且在您的工作中不可替代。 參見下面的演示:

單擊免費試用Office選項卡!

Excel的Office選項卡


相關文章:


最佳辦公效率工具

Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%

  • 重用: 快速插入 複雜的公式,圖表 以及您以前使用過的任何東西; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 不會丟失數據; 拆分單元格內容; 合併重複的行/列...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 超過 300 項強大的功能. 支持 Office / Excel 2007-2021 和 365。支持所有語言。 在您的企業或組織中輕鬆部署。 完整功能 30 天免費試用。 60 天退款保證。
kte選項卡201905

Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
officetab底部
按評論排序
留言 (31)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
很棒的一個! 請問我說10次後如何停止循環?
網站主持人對此評論進行了最小化
美好的一天,
您可以進入代碼窗口手動中斷代碼(單擊中斷按鈕)以停止循環。
網站主持人對此評論進行了最小化
再會! 我不明白如何打破宏代碼再次設置循環執行時間。你能更詳細地描述一下如何做到這一點嗎? 運行週期時間的值記錄在哪裡?
網站主持人對此評論進行了最小化
嗨傑克,
我的錯。
文末新增了可以停止宏的 VBA 代碼。 請試一試。 感謝您的評論。
網站主持人對此評論進行了最小化
謝謝你,這是一種享受。 我是編碼新手,所以如果這很簡單,請原諒我......

如何讓對話框再次出現? 我讓它停留在 1 分鐘的循環中。 謝謝。
網站主持人對此評論進行了最小化
美好的一天,
只需破壞代碼並再次運行它。
網站主持人對此評論進行了最小化
您好!
這很棒,但是有沒有辦法讓它在重新開始之前循環回到電子表格的第一行?


謝謝!
網站主持人對此評論進行了最小化
告訴我更多如何停止宏的執行並更改循環的間隔?
網站主持人對此評論進行了最小化
告訴我更多如何停止宏的執行並更改循環的間隔?
網站主持人對此評論進行了最小化
好日子,
文末新增了可以停止宏的 VBA 代碼。 請試一試。 感謝您的評論。
網站主持人對此評論進行了最小化
請提供以下代碼:


“如何在 Excel 中每 X 秒重複或循環一次宏”


謝謝
網站主持人對此評論進行了最小化
嗨,
請將 "Application.OnTime Now() + TimeValue("0:" + xMin + ":0"), "ReRunMacro"" 行更改為
Application.OnTime Now() + TimeValue("0:" + "0:" + xMin), "ReRunMacro"
網站主持人對此評論進行了最小化
嘿嘿
我有一個查詢,您的代碼運行良好,每 5 分鐘將數據複製到我的下一列中,但 3 小時後,我的所有列都已滿,因為它是 2003 年的 excel。 您能否幫我提供一個代碼來檢查是否沒有其他列是空的,然後創建一個新工作表並將粘貼數據複製到該工作表中
網站主持人對此評論進行了最小化
您好,請幫我“在此處插入您的代碼”。 我是新手,需要關於填寫什麼以及如何填寫的幫助! 謝謝我沒有做對
網站主持人對此評論進行了最小化
嗨,帕德瑪,
“在此處插入您的代碼”表示您用於在 Excel 中實現某些操作的 VBA 代碼。 假設您需要應用 VBA 根據特定值將一行移動到另一個工作表,並且希望每 X 分鐘自動運行一次代碼,您需要將 VBA 代碼放置在這裡。
網站主持人對此評論進行了最小化
嗨,我搞砸了並將時間設置為 0.5,現在我無法更改它,任何想法如何更改 xMin 設置?
網站主持人對此評論進行了最小化
嗨大衛。

正如我們在文章末尾提到的,如果您需要停止執行宏並更改循環間隔,請將以下 VBA 代碼複製到同一模塊窗口中,然後按 F5 鍵運行代碼。 然後宏將停止,請重新運行上述代碼以指定新的間隔。



子 ExitReRunMacro()

SaveSetting “Kutools”、“宏”、“分鐘”、“退出”

END SUB
網站主持人對此評論進行了最小化
嘿,謝謝! 但我擔心 marco 甚至無法運行,當我按 F5 時,excel 會向我發送此錯誤消息:運行時錯誤 13 '類型不匹配'。



我刪除了它,但是如果我嘗試再次創建它,會出現相同的錯誤消息,我唯一的猜測是我在代碼中將時間設置為 0.5,所以現在不知道如何修改它。



再次感謝你的幫助。
網站主持人對此評論進行了最小化
嗨非常有用,但是我想我搞砸了並將時間設置為 0.5,現在我無法更改它,任何想法如何更改 xMin 設置?
網站主持人對此評論進行了最小化
如何使用連續循環和按鍵在 excel 中創建宏將只有 pg up 和 pg down
網站主持人對此評論進行了最小化
嗨,傑克,我錯誤地輸入了 0.5 分鐘,它顯示錯誤,
我的意思是 xMin 被視為 0.5 分鐘。
如何擺脫並將其更改為1分鐘?
網站主持人對此評論進行了最小化
嗨,LIMCA,
帶來不便敬請諒解。 該代碼不支持輸入小數。

請通過運行以下 VBA 代碼停止循環,然後重新運行循環代碼並在彈出的對話框中輸入 1。

子 ExitReRunMacro()

SaveSetting “Kutools”、“宏”、“分鐘”、“退出”

END SUB
網站主持人對此評論進行了最小化
我正在粘貼下面的代碼,其中我用我的代碼替換了輸入代碼的行。 我得到的錯誤是 - 編譯錯誤:預期結束子。 請幫忙。

子重新運行宏()
將 xMin 調暗為字符串
子刷新()
'
' 刷新宏
'

'
表(“表 1”)。選擇
ActiveWorkbook.RefreshAll
Sheets("Pivot-Dash").Select
END SUB


xMin = GetSetting(AppName:="Kutools", Section:="Macro", Key:="min", Default:="")
如果 xMin = "退出" 那麼
保存設置“Kutools”、“宏”、“分鐘”、“假”
退出小組
如果結束
如果 (xMin = "") 或 (xMin = "False") 那麼
xMin = Application.InputBox(prompt:="請輸入您需要重複宏的間隔時間", Title:="Kutools for Excel", Type:=2)
SaveSetting "Kutools", "Macro", "min", xMin
如果結束
如果 (xMin <> "") 和 (xMin <> "False") 那麼
Application.OnTime Now() + TimeValue("0:" + xMin + ":0"), "ReRunMacro"
其他
退出小組
如果結束
網站主持人對此評論進行了最小化
美好的一天,您需要從代碼中刪除 Sub 行和 End Sub 行。 子刷新()
'
' 刷新宏
'

'
表(“表 1”)。選擇
ActiveWorkbook.RefreshAll
Sheets("Pivot-Dash").Select
結束子更改為: '
' 刷新宏
'

'
表(“表 1”)。選擇
ActiveWorkbook.RefreshAll
Sheets("Pivot-Dash").Select
網站主持人對此評論進行了最小化
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"
網站主持人對此評論進行了最小化
嗨 Ron Franklin,我在 Excel 365 中嘗試過,但無法重現此問題。 
網站主持人對此評論進行了最小化
編譯錯誤:

預期結束子

Mam przekopiowane dokładnie jak jest napisane wy​​zej i nie moge odnaleźć problemu
網站主持人對此評論進行了最小化
嗨,帕維德,
您能否提供錯誤的屏幕截圖和 vba 代碼中突出顯示的行? 在我的情況下無法重現該問題。 很抱歉給您帶來不便。
網站主持人對此評論進行了最小化
klo mengulang Makro sebanyak 3 kali, atau seberapa kali yang kita mau, itu gi mana 是嗎? 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
這裡還沒有評論
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

版權所有©2009 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護