我有一个“主”时间表宏,用户打开并完成。关闭后,我强制一个宏(在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
答案 0 :(得分:0)
@Bob,好像这与BeforeClose
事件有关。在关闭工作簿之前,您正在尝试SaveAs
。这可能会导致一些问题。你试着调试这个宏吗?如果是的话,你发现了什么?