VBA:停止递归函数重新打开工作簿,工作簿接近
问题描述:
我用下面的代码来检查,如果只读工作簿中的用户查看更新后:VBA:停止递归函数重新打开工作簿,工作簿接近
Function NewVersion() As Boolean
If a <> b Then Flag = True: Exit Function
Application.OnTime Now + TimeValue("00:00:05"), "NewVersion"
End Function
但是,每当我关闭工作簿,它重新打开(大概是因为NewVersion被加载到内存中并设置为在5秒内运行?)
如何防止这种情况发生?
我已经尝试了各种各样的东西,但没有运气到目前为止!
答
如果使用Application.OnTime的Schedule参数,创建一个公共变量以跟踪下一次您的宏应该触发并取消的时间。
Public ScheduledTime As Date
Function NewVersion() As Boolean
ScheduledTime = Now + TimeValue("00:00:05")
Application.OnTime ScheduledTime, "NewVersion"
End Function
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.OnTime ScheduledTime, "NewVersion", Schedule:=False
End Sub
精彩@Thomas,感谢您的快速回答! – user2048265