连续循环刷新公式

我有一个使用= 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