这是我使用的代码。只有当我在设计器中运行此代码时,对话框才会弹出。当我关闭设计器并运行宏时,它只会保存工作簿,但我希望每次运行此宏时都会弹出对话框。请提供任何帮助/建议
Sub SaveAs()
Dim IntialName As String
Dim sFileSaveName As Variant
IntialName = "Sample Output"
sFileSaveName = Application.GetSaveAsFilename(InitialFileName:=InitialName, fileFilter:="Excel Files (*.xlsm), *.xlsm")
If sFileSaveName <> False Then
ActiveWorkbook.SaveAs sFileSaveName
End If
End Sub
答案1
您的代码需要一些更正:
- 由于您使用的子程序名称与某个保留字(命令)冲突另存为,因此 Excel 返回此错误!
- 您需要从命令行删除它,
InitialFileName:=
原因:您正在尝试使用给定的名称保存文件IntialName = "Sample Output"
。
- 最后是错字,
InitialName
。
建议更正:
重命名子程序,例如,另存为或任何其他另存为。
将此行替换为
sFileSaveName = Application.GetSaveAsFilename(InitialFileName:=InitialName, fileFilter:="Excel Files (*.xlsm), *.xlsm")
有了这个,
sFileSaveName = Application.GetSaveAsFilename(IntialName, fileFilter:="Excel Files (*.xlsm), *.xlsm")
- 您得到了 Propmt。
这应该是可以使用的完整代码。
Sub SaveMyFileAs() Dim IntialName As String Dim sFileSaveName As Variant IntialName = "Sample Output" sFileSaveName = Application.GetSaveAsFilename(IntialName, fileFilter:="Excel Files (*.xlsm), *.xlsm") If sFileSaveName <> False Then ActiveWorkbook.SaveAs sFileSaveName End If End Sub
注意:此代码可以用作,工作簿_关闭前事也。