我有一个工作表使用= Files作为命名范围(所以我可以看到文件夹中的文件。然后我有一个MOVE按钮,可以将文件从一个文件夹移动到另一个文件夹。 当我点击命令按钮时,我告诉它执行移动和
ActiveSheet.EnableCalculation = False
ActiveSheet.EnableCalculation = True
哪个效果太棒了。 唯一的事情是,当我点击移动按钮时,只会更新我的文件列表
是否有任何时候都能使用此功能? 没有点击按钮..... 因此,只要文件处于打开状态,它就会始终执行刷新。
理想情况下,我可以告诉它每隔X秒做一次......但这不是必需的。
答案 0 :(得分:1)
根据您 其他 的机器 这一事实,您可以将代码置于您的workbook_open
事件中工作簿(VBE中的ThisWorkbook模块)并用下面的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
此代码将在您打开工作簿后立即执行,并且基本上会持续到当天定义的时间段,然后关闭工作簿,每隔x分钟暂停一次循环(由Application.Wait设置) )。
或者,正如蒂姆·威廉姆斯建议的那样,您可以使用带有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