我使用的是 Excel (Office 365)。
这是一个关于我的问题的视频:link
互联网上到处都是这样的例子,人们说当我们将 Schedule
设置为 False
时代码应该可以工作,但遗憾的是这对我没有帮助。
代码应该使用 Application.OnTime
开始一个循环并在关闭工作簿之前停止它。
stopF
,它会正确停止 Application.OnTime
。Application.OnTime
。' In Module1:
Public startingTime As Double
Sub startF()
MsgBox "hello"
startingTime = Now + TimeValue("00:00:10")
Application.OnTime startingTime, "Module1.startF"
End Sub
Sub stopF() 'HERE IT WORKS GOOD
On Error Resume Next
Application.OnTime startingTime, "Module1.startF", , False
End Sub
' In ThisWorkbook:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call stopF 'HERE IT DOES NOT WORK GOOD
End Sub
我不知道我还能做什么。
答案 0 :(得分:0)
我对我的问题的临时解决方案:
我保留了整个代码,并添加到 matches = (set(domains_1).intersection(domains_2))
print(matches)
以下代码中:
Module1
重点是:
' In Module1:
Sub closeWorkbook()
Call stopF
ThisWorkbook.Close
End Sub
调用的 stopF
将起作用Workbook_BeforeClose
调用的 vba 关闭 stopF
将起作用。更详细一点:
module
并正确停止 Workbook_BeforeClose => Call stopF
。Application.OnTime
函数(因为它以某种方式不起作用)但我在需要时调用我的新 Workbook_BeforeClose
函数,它会终止 closeWorkbook()
然后关闭工作簿。