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

我有以下macros来刷新我的工作簿。 此时,这与点击全部刷新button相同。 是否有一个时间元素,我可以添加到此代码,使其每隔15分钟刷新工作簿中的所有工作表上的所有 数据连接和所有计算

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

Sub Workbook_RefreshAll() ActiveWorkbook.RefreshAll End Sub 

在标准模块中input以下内容:

 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的网站

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

在这里输入图像说明

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

然而,这只是一次事件。 为了recursion,你必须在macros中包含另一个Application.OnTime来确保每15分钟一次。

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

 application.Calculate 

PS:对不起,我的英语