我已经编写了一些非常基本的VBA代码来完成一项简单的任务:提醒我填写我的时间表(这是一个Excel /表)。当我去办公室,打开电脑并在我的创业公司中使用Excel时,它为我工作了很多年。夹。然而,现在我的生活发生了一些变化,我使用笔记本电脑并且不会将其关闭,因此宏不会被解雇。
以下是如何打开的:
Private Sub Workbook_Open()
Application.OnTime TimeValue("17:00:00"), "box"
If TimeValue("17:00:00") < Time Then
Run ("box")
End If
ActiveWindow.WindowState = xlMinimized
Run ("morning")
End Sub
这里&#39;框&#39;:
Sub box()
response = MsgBox("Have you filled in your timesheet?", vbYesNo, "timesheet")
If response = vbYes Then
ActiveWindow.WindowState = xlMinimized
End If
If response = vbNo Then
Workbooks("timesheet2015 - GZ.xlsm").Activate
ActiveWindow.WindowState = xlMaximized
End If
End Sub
在这里上午&#39;
Sub morning()
response = MsgBox("Did you fill in your timesheet yesterday?", vbYesNo, "timesheet")
If response = vbYes Then End
If response = vbNo Then
Workbooks("timesheet2015 - GZ.xlsm").Activate
ActiveWindow.WindowState = xlMaximized
End If
End Sub
如果有一种方法可以阻止宏一旦运行一次,我就一直在努力工作。我不想要有一些巨大的无限循环,否则会降低笔记本电脑的速度。我确信有一个简单的方法可以帮助你。
谢谢!
答案 0 :(得分:0)
将时间表工作簿放在Excel的XLStart
文件夹中。这将在每次打开Excel时打开工作簿。使用工作簿的_Open
和_Close
事件处理程序来提示您填写时间表?
或者,将这些过程放在另一个加载Excel的工作簿或加载项中(可能也在XLStart或AddIns文件夹中),这样您就不必将此文件保持打开状态永远。您仍然可以使用后一种方法OnTime
。