每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:对不起,我的英语