宏只运行一次

时间:2013-05-24 08:13:46

标签: vba

我有一个“主”时间表宏,用户打开并完成。关闭后,我强制一个宏(在ThisWorkbook中)运行并将master重命名为范围保存名称中的文件名。

这在用户第一次打开Excel,编辑和关闭工作簿时非常有效。但是,如果用户第二次打开“主”时间表,完成另一个时间表并关闭,而不在其间关闭Excel,则宏不会运行。

我已经进行了广泛的搜索,看看是否有一些“全局变量”需要重置,但没有任何乐趣。

这是代码。任何建议将不胜感激。

Private Sub Workbook_BeforeClose(SaveAsUI As Boolean)
 If Not SaveAsUI Then
    Cancel = True
    Application.EnableEvents = False
    MSG1 = MsgBox("This File will be saved as....... " & Sheets("Timesheet").Range("savename").Value & ".xlsm", vbOKOnly, "Confirm")
    Me.SaveAs Filename:=ThisWorkbook.Path & "\" & Sheets("Timesheet").Range("savename").Value & ".xlsm"
    ActiveWorkbook.Close False
    Application.EnableEvents = True
   End If
End Sub

1 个答案:

答案 0 :(得分:0)

@Bob,好像这与BeforeClose事件有关。在关闭工作簿之前,您正在尝试SaveAs。这可能会导致一些问题。你试着调试这个宏吗?如果是的话,你发现了什么?