xlDialogSaveAs使Excel崩溃

我想创build一个小macros,强制用户使用MS Excel 2010中的SaveAs对话框(“MS Office Professional Plus 2010”,以防万一),而不是只保存同名的文件。 我在工作簿对象下保存了这个过程:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If Not SaveAsUI Then msg = "Use the 'Save As' dialog to save a new version of the file" Style = vbOKCancel Query = MsgBox(msg, Style) If Query = vbOK Then Application.Dialogs(xlDialogSaveAs).Show ElseIf Query = vbCancel Then Cancel = True End If End If End Sub 

这一切都很好:我按“Ctrl-S”并得到提示。 我点击“确定”并使用另存为对话框以不同的名字保存文件。 但是一旦我点击对话框中的“保存”button,Excel就会崩溃。

我可能在错误的方式使用xlDialogSaveAs命令,但我不明白为什么这不起作用。 debugging器中没有错误消息。 工作簿中没有其他VBA代码。 我正在尝试将工作簿保存为.xlsm文件(SaveAs对话框正确地默认为它)。

有没有人可以帮助我?

尝试,

 If Query = vbOk Then Application.Dialogs(xlDialogSaveAs).Show End If Cancel = True. 

我怀疑有一个问题,试图保存在原来的电话,并试图保存在你打开的新的对话框