VBA SaveAs保存为文件类型而不是.xlsm

时间:2016-05-24 16:08:10

标签: excel vba excel-vba save

当用户打开此工作簿时,我想强制他们立即将文件另存为新文件。该对话框打开,但只允许您将其保存为“所有文件”。

enter image description here

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”,但没有区别。

你能不能马上攒钱吗?你是否需要对文件进行更改?

非常感谢任何帮助。

3 个答案:

答案 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