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

Save current Workbook as separate Excel Workbook via dialog box

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

到目前为止我的代码是:

Private Sub Save_Button_Click()

Application.GetSaveAsFilename InitialFileName:="S0000.xlsx"

End Sub

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

试试这个:

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