连续循环刷新公式
我有一个使用= Files作为命名范围的工作表(所以我可以看到文件夹中的文件,然后我有一个MOVEbutton,可以将文件从一个文件夹移动到另一个文件夹当我点击命令button,我告诉它执行移动和
ActiveSheet.EnableCalculation = False ActiveSheet.EnableCalculation = True
哪个工作太棒了。 唯一的是只有当我点击移动button时才更新我的文件列表
无论如何有这个function在任何时候工作? 没有点击一个button…..所以只要文件是打开的,它总是执行刷新。
理想情况下,我可以告诉它每X秒做一次……但这不是必要的。
根据您只在机器上使用此工作簿这一事实,您可以将代码置于workbook_open
簿(VBE中的ThisWorkbook模块)的workbook_open
事件中,并使用下面的Do Loop
包含在其中。
Private Sub Workbook_Open() Do 'code to move files Application.Wait Now + TimeValue("0:05:00")) 'waits 5 minutes Loop Until Time() >= TimeValue("17:00:00") '5pm military time ThisWorkbook.Close True 'closes workbook after loop is over End Sub
这些代码将在您打开工作簿后立即执行,并且一直持续到一天中定义的时间段,然后closures工作簿,每x分钟暂停一次循环(由Application.Wait设置)。
替代方法
或者,如Tim Williams所build议的那样,可以像这样使用Application.OnTime
命令的循环
Private Sub Workbook_Open() Dim t as Date t = Now + TimeValue("00:00:05") 'just give a 5 seconds to start loop Do Application.OnTime t, "mySub" 'where mySub is your sub name t = Now + TimeValue("00:05:00") 'sets t to 5 minutes from now Loop Until t > = TimeValue("17:00:00") ThisWorkbook.Close True End Sub