通过对话框将当前工作簿另存为单独的 Excel 工作簿

时间:2021-04-13 06:37:14

标签: excel vba save-as

我正在尝试制作一个按钮,该按钮将显示另存为对话框,并在保存时将当前工作簿另存为单独的 Excel 工作簿,我为其输入文件名和位置。

到目前为止我所拥有的代码是:

Private Sub Save_Button_Click()

Application.GetSaveAsFilename InitialFileName:="S0000.xlsx"

End Sub

有人可以分享此操作的代码吗?

1 个答案:

答案 0 :(得分:2)

试试这个:

Private Sub Save_Button_Click()
    dim fName as variant

    fName = Application.GetSaveAsFilename( _
        InitialFileName:="S0000.xlsx", _
        FileFilter:="Excel Workbook (*.xlsx), *.xlsx")
    ActiveWorkbook.SaveAs Filename:=fName, FileFormat:=xlWorkbookDefault

End Sub

这是改编自 Duplicate your workbook in seconds 中的示例。

它保存活动工作簿(即当前在 Excel 前台打开的工作簿)。这可能是也可能不是包含代码的工作簿。

如果您想确保包含此代码的工作簿是保存的工作簿,请将 ActiveWorkbook 更改为 ThisWorkbook

要捕获用户未提供的文件名(在他们删除您的默认文件名后),您可以添加条件语句进行检查,例如:

Private Sub Save_Button_Click()
    dim fName as variant

    fName = Application.GetSaveAsFilename( _
        InitialFileName:="S0000.xlsx", _
        FileFilter:="Excel Workbook (*.xlsx), *.xlsx")
    If fName <> False Then ActiveWorkbook.SaveAs Filename:=fName, FileFormat:= xlOpenXMLWorkbook

End Sub