当用户打开此工作簿时,我想强制他们立即将文件另存为新文件。该对话框打开,但只允许您将其保存为“所有文件”。
Dim Workbook_Orig As Variant
Workbook_Orig = Application.GetSaveAsFilename
If Workbook_Orig <> False Then
ActiveWorkbook.SaveAs _
Filename:="File Name", _
FileFormat:=52
End If
代替“52”,我尝试了“xlOpenXMLWorkbookMacroEnabled”,但没有区别。
你能不能马上攒钱吗?你是否需要对文件进行更改?
非常感谢任何帮助。
答案 0 :(得分:3)
尝试指定文件过滤器:
Workbook_Orig = Application.GetSaveAsFilename( _
fileFilter:="XLSM Files (*.xlsm), *.xlsm")
答案 1 :(得分:3)
更改FileFormat
仅在对话框中没有选择任何内容时才有意义(因为那是唯一的时间workbook_orig = False)
尝试指定文件过滤器参数
Workbook_Orig = Application.GetSaveAsFilename(fileFilter:="Excel Macro-Enabled Workbook (*.xlsm),*.xlsm")
在GetSaveAsFileName
指令中。
答案 2 :(得分:1)
为什么不向用户提供InputBox?让他们输入新文件名并让宏执行另存为。
类似的东西:
Sub saveAs()
userAnswer = InputBox("Please enter filename")
ActiveWorkbook.saveAs Filename:= _
"C:\" & userAnswer & ".xls", FileFormat:=xlExcel8, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
End Sub
修改强>
Sub saveAs()
userAnswer = InputBox("Please enter filename")
userDirectory = InputBox("Please enter directory to save file")
ActiveWorkbook.saveAs Filename:= _
userDirectory & "\" & userAnswer & ".xls", FileFormat:=xlExcel8, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
End Sub