簡體   English   中英

VBA另存為另存為文件類型而不是.xlsm

[英]VBA SaveAs saving as File type instead of .xlsm

當用戶打開此工作簿時,我要強制他們立即將文件另存為新文件。 對話框打開,但只允許您將其另存為“所有文件”。

在此處輸入圖片說明

Dim Workbook_Orig As Variant

    Workbook_Orig = Application.GetSaveAsFilename

    If Workbook_Orig <> False Then
        ActiveWorkbook.SaveAs _
        Filename:="File Name", _
        FileFormat:=52
    End If

我嘗試使用“ xlOpenXMLWorkbookMacroEnabled”代替“ 52”,但這沒有什么區別。

您不能立即另存為嗎? 您是否需要更改文件或其他內容?

任何幫助是極大的贊賞。

嘗試指定文件過濾器

Workbook_Orig = Application.GetSaveAsFilename( _
        fileFilter:="XLSM Files (*.xlsm), *.xlsm")

僅當他們在對話框中沒有選擇任何內容時,更改FileFormat才是重要的(因為這是workbook_orig = False的唯一時間)

嘗試指定文件過濾器參數

Workbook_Orig = Application.GetSaveAsFilename(fileFilter:="Excel Macro-Enabled Workbook (*.xlsm),*.xlsm")

在您的GetSaveAsFileName指令中。

為什么不向用戶顯示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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM