1

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

这在用户第一次打开 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
4

1 回答 1

0

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

于 2013-05-24T08:26:15.783 回答