xlDialogSaveAs使Excel崩溃
问题描述:
我想创建一个小宏,强制用户在MS Excel 2010中使用SaveAs对话框(“MS Office Professional Plus 2010”以防万一),而不是只保存文件一样的名字。我将这个程序保存在工作簿对象下:xlDialogSaveAs使Excel崩溃
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”并获得提示。我点击“确定”并使用另存为对话框以不同的名称保存文件。但只要我点击对话框中的“保存”按钮,Excel就会崩溃。
我可能在错误的方式使用xlDialogSaveAs命令,但我只是不明白为什么这不起作用。调试器中没有错误消息。工作簿中的其他地方没有其他VBA代码。我试图将工作簿保存为.xlsm文件(SaveAs对话框默认为默认)。
有没有人可以帮助我?
答
尝试,
If Query = vbOk Then
Application.Dialogs(xlDialogSaveAs).Show
End If
Cancel = True.
我怀疑有试图在原有的呼叫保存,并试图在你打开新的对话框,保存问题
我只是想它(的Excel 2013),它为我工作。你有什么版本的Excel?你保存为什么文件类型?你有没有尝试不同的文件名?本工作簿中是否有其他代码? –
嗨迈克尔,很高兴知道至少我的方法并非完全错误......!我正在使用Excel 2010.可能是这样,但那会令人惊讶,因为我在几个旧的论坛条目中找到了该命令。 “另存为”对话框默认为“.xlsm”,并保持原样。我所做的只是改变名字。我尝试了不同的名字,但无济于事。工作簿中的任何地方都没有其他代码。 –
如果您只是使用SaveAs,会不会导致崩溃?无论您尝试将它保存在哪里以及您给它的任何名称,它都会崩溃吗?是否保存文件,然后在实际保存之前崩溃或崩溃? –