停止excel VBA宏关闭

时间:2015-03-29 22:44:27

标签: vba excel-vba excel

我已经编写了一些非常基本的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

如果有一种方法可以阻止宏一旦运行一次,我就一直在努力工作。我不想要有一些巨大的无限循环,否则会降低笔记本电脑的速度。我确信有一个简单的方法可以帮助你。

谢谢!

1 个答案:

答案 0 :(得分:0)

将时间表工作簿放在Excel的XLStart文件夹中。这将在每次打开Excel时打开工作簿。使用工作簿的_Open_Close事件处理程序来提示您填写时间表?

或者,将这些过程放在另一个加载Excel的工作簿或加载项中(可能也在XLStart或AddIns文件夹中),这样您就不必将文件保持打开状态永远。您仍然可以使用后一种方法OnTime