Excel VBA – 为什么我的“另存为”不起作用?

我有一个VBA脚本,所以如果一个单元格是空的,Excel将提示文件保存。

这是确保模板没有改变。 但是,当用户在“另存为”对话框中单击保存时,该文件不会保存。

这是我正在使用的代码:

If Worksheets("Input").Range("E2").Value = "" Then Application.EnableEvents = False Application.GetSaveAsFilename InitialFileName:="\\ac35542\Problem Management\Action Plans\ChangeMe.xlsm", FileFilter:="Excel Macro-Enabled Workbook (*.xlsm),*.xlsm" Application.EnableEvents = True MsgBox "Please ensure fill in the Problem Reference Number, Problem Title, and Select a Contract", vbExclamation, "PR Reference & Title" Worksheets("Input").Select Range("E2").Select End If 

为什么文件没有保存?

从MSDN跟进

Application.GetSaveAsFilename显示标准的“另存为”对话框,并从用户那里获取文件名, 而不实际保存任何文件。

改用这个:

 Dim fileSaveName If Worksheets("Input").Range("E2").Value = "" Then Application.EnableEvents = False fileSaveName = Application.GetSaveAsFilename(InitialFileName:="\\ac35542\Problem Management\Action Plans\ChangeMe.xlsm", FileFilter:="Excel Macro-Enabled Workbook (*.xlsm),*.xlsm") Application.EnableEvents = True If fileSaveName <> "False" Then Application.DisplayAlerts = False ThisWorkbook.SaveAs (fileSaveName) Application.DisplayAlerts = True End If MsgBox "Please ensure fill in the Problem Reference Number, Problem Title, and Select a Contract", vbExclamation, "PR Reference & Title" Worksheets("Input").Select Range("E2").Select End If