如何使用Excel 2016 VBA宏编辑器创建自动计时器?
我需要在Excel 2016 VBA编辑器中创建一个计时器,它将每秒关闭并显示一条消息 我有一个简单的代码可以做到这一点;但是,当我运行代码时,会出现一个消息框,然后出现一个错误。我的代码如下:如何使用Excel 2016 VBA宏编辑器创建自动计时器?,vba,excel,timer,Vba,Excel,Timer,我需要在Excel 2016 VBA编辑器中创建一个计时器,它将每秒关闭并显示一条消息 我有一个简单的代码可以做到这一点;但是,当我运行代码时,会出现一个消息框,然后出现一个错误。我的代码如下: Private Sub Workbook_Open() RunEveryTwoMinutes End Sub Sub RunEveryTwoMinutes() MsgBox ("Stop!") Application.OnTime Now + TimeValue("00:00:01"), "RunEv
Private Sub Workbook_Open()
RunEveryTwoMinutes
End Sub
Sub RunEveryTwoMinutes()
MsgBox ("Stop!")
Application.OnTime Now + TimeValue("00:00:01"), "RunEveryTwoMinutes"
End Sub
我收到的错误状态为:
无法运行宏“C:user | generic\Book1.xlsm”。该宏可能在此工作簿中不可用,或者可能已禁用所有宏
我不确定发生了什么。我只需要找到一种方法来创建一个1秒计时器,在代码初始化后立即启动。将此代码放入工作簿代码模块:
Private Sub Workbook_Open()
RunEveryTwoMinutes
End Sub
Sub RunEveryTwoMinutes()
MsgBox ("Stop!")
Application.OnTime Now + TimeValue("00:00:01"), "RunEveryTwoMinutes"
End Sub
并将此代码放置在标准代码模块中:
Private Sub Workbook_Open()
RunEveryTwoMinutes
End Sub
Sub RunEveryTwoMinutes()
MsgBox ("Stop!")
Application.OnTime Now + TimeValue("00:00:01"), "RunEveryTwoMinutes"
End Sub
或者,您可以在工作簿代码模块中包含所有代码,但需要限定宏名称:
Private Sub Workbook_Open()
RunEveryTwoMinutes
End Sub
Sub RunEveryTwoMinutes()
MsgBox ("Stop!")
Application.OnTime Now + TimeValue("00:00:01"), "ThisWorkbook.RunEveryTwoMinutes"
End Sub
我认为第一种方法更可取。答案不错,但为什么您更喜欢将函数放在标准模块中?@a.S.H-我认为,如果ThisWorkbook模块中的函数只针对工作簿,表单中的函数只针对表单,而工作表中的函数只针对ic到工作表,类中的函数特定于该类,其他所有内容都放在通用模块中。这是一个很好的观点。标准模块也更易于导出,因此易于重用。Kudos:)