![当我运行宏来保存文档时不会显示对话框](https://linux22.com/image/1597840/%E5%BD%93%E6%88%91%E8%BF%90%E8%A1%8C%E5%AE%8F%E6%9D%A5%E4%BF%9D%E5%AD%98%E6%96%87%E6%A1%A3%E6%97%B6%E4%B8%8D%E4%BC%9A%E6%98%BE%E7%A4%BA%E5%AF%B9%E8%AF%9D%E6%A1%86.png)
这是我使用的代码。只有当我在设计器中运行此代码时,对话框才会弹出。当我关闭设计器并运行宏时,它只会保存工作簿,但我希望每次运行此宏时都会弹出对话框。请提供任何帮助/建议
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
注意:此代码可以用作,工作簿_关闭前事也。