Refresh entire Excel workbook (all data connections and calculations) every 15 minutes?

前端 未结 3 1731
感情败类
感情败类 2020-12-20 07:12

I have the following macro to refresh my workbook. This is the same as clicking on the refresh all button.

Is there a time element I can add to this code to refresh

相关标签:
3条回答
  • 2020-12-20 07:15

    Enter the following in a standard module:

    Public RunWhen As Double
    Public Const cRunIntervalMinutes = 15
    Public Const cRunWhat = "Workbook_RefreshAll"
    
    Sub StartTimer()
        RunWhen = Now + TimeSerial(0, cRunIntervalMinutes, 0)
        Application.OnTime earliesttime:=RunWhen, procedure:=cRunWhat, _
             schedule:=True
    End Sub
    
    Sub StopTimer()
       On Error Resume Next
       Application.OnTime earliesttime:=RunWhen, _
           procedure:=cRunWhat, schedule:=False
    End Sub
    
    Sub Workbook_RefreshAll()
        Application.CalculateFullRebuild
        ActiveWorkbook.RefreshAll
        Call StartTimer
    End Sub
    

    To begin the process run StartTimer() and to end the process run StopTimer()

    Adapted from Chip Pearson's Site

    I used some Shapes to run the macros:

    0 讨论(0)
  • 2020-12-20 07:16

    to refresh all calculations you can use:

    application.Calculate
    

    P.S.: Sorry my english

    0 讨论(0)
  • 2020-12-20 07:27

    You can use the Application.OnTime method to schedule a macro to be run in the future: https://msdn.microsoft.com/en-us/library/office/ff196165.aspx

    Yet, this is a one time event only. To make it recursive, you'll have to include in that macro (yet again) another Application.OnTime to ensure a calling "every 15 minutes".

    0 讨论(0)
提交回复
热议问题