📅  最后修改于: 2023-12-03 15:00:39.046000             🧑  作者: Mango
有时候我们需要在Excel中设置一些定时的任务来自动执行一些操作。例如每5分钟更新数据或生成报告。在Excel中,我们可以使用VBA编写宏来实现这个功能。
打开Excel,然后按下 ALT + F11 打开Visual Basic编辑器。
在左侧的“项目浏览器”中,展开该工作簿文件,双击“这台计算机”或“Microsoft Excel 对象”下拉列表看到“工作表”和“本工作簿”。
点击需要进行定时宏操作的Excel文件下的“宏”按钮,创建一个新的宏。
在VBA编辑器窗口中,输入以下代码:
Sub RunMacro()
'这里是你的宏代码
End Sub
Sub StartTimer()
Application.OnTime Now + TimeValue("00:05:00"), "RunMacro"
End Sub
Sub StopTimer()
On Error Resume Next
Application.OnTime earliesttime:=Now + TimeValue("00:05:00"), _
procedure:="RunMacro", schedule:=False
End Sub
在上面的代码中,第一个子程序“RunMacro”是你要执行的宏代码,你可以在其中写下你自己的业务逻辑。第二个子程序“StartTimer”中的“Now + TimeValue("00:05:00")”表示5分钟后自动调用“RunMacro”宏,让Timer开启。第三个子程序“StopTimer”可以用于停止Timer,最好在退出Excel之前停止Timer。
在Excel中打开开发者选项卡(如果开发者选项卡未启用,则需要启用它)。
点击开发者选项卡中的“插入”菜单,然后选择“表单控件”。
在下拉菜单中选取一个按钮控件,然后将其拖放到你的工作表中的任意位置。
右键单击按钮控件,然后选择“查看代码”。
在代码编辑器中的Click()事件下输入“StartTimer”。
如果你修改了需要自动运行的宏代码,你需要重新保存工作簿文件。
如果你退出了Excel或关闭了工作簿文件,在引用“Now”时会产生未定义的错误。
如果你多次点击按钮或定时器,那么所有的未来调用都将被取消,也就是说,只有最后一次单击按钮或定时器才会调用宏代码。