宏每15分钟刷新一个excel工作簿(所有数据连接和计算)?

时间:2016-04-26 13:59:05

标签: excel excel-vba macros excel-formula refresh vba

我有以下宏来刷新我的工作簿。此时,这与单击全部刷新按钮相同。是否有时间元素可以添加到此代码中,以便刷新所有数据连接以及所有工作表上的所有计算每15分钟一次。

工作簿具有从SharePoint列表项中提取数据的单元格,并且还包含典型的公式计算。

$("#tabStrip").kendoTabStrip({
    select: function(event) {
        // Detect if this is a case where override is needed
        event.preventDefault(); 
        // Navigate to the desired content
    }
});

3 个答案:

答案 0 :(得分:1)

您可以使用Application.OnTime方法安排将来运行的宏:https://msdn.microsoft.com/en-us/library/office/ff196165.aspx

然而,这只是一次性活动。为了使其递归,您必须在该宏(又一次)中包含另一个Application.OnTime以确保每隔15分钟进行一次调用"

答案 1 :(得分:1)

在标准模块中输入以下内容:

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

开始流程运行StartTimer()并结束流程运行StopTimer()

改编自Chip Pearson's Site

我使用了一些形状来运行宏:

enter image description here

答案 2 :(得分:0)

刷新您可以使用的所有计算:

application.Calculate

P.S。:对不起我的英文