excel - 选择特定工作表并将其保存为新工作簿

标签 excel vba

我需要编写一个宏,允许我选择要单独保存为新文件的工作簿表。
我目前正在使用以下代码执行此操作,但它将所有工作表保存为一个新文件。我希望能够选择或定义要保存的工作表。

Sub Save_sheets_xlsx()

Dim Path As String
Path = Application.ActiveWorkbook.Path

Dim FileName As String
FileName = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 5)

Application.ScreenUpdating = False
Application.DisplayAlerts = False

For Each xWs In ThisWorkbook.Sheets
    xWs.Copy
    Application.ActiveWorkbook.SaveAs FileName:=Path & "\" & FileName & " " & xWs.Name & ".xlsx"
    Application.ActiveWorkbook.Close False
    
Next

Application.DisplayAlerts = True
Application.ScreenUpdating = True

End Sub

最佳答案

将工作表导出为新工作簿

Option Explicit

Sub ExportSheets()
    
    Const SheetNameList As String = "Sheet1,Sheet2,Sheet3" ' commas no spaces!

    Dim SheetNames() As String: SheetNames = Split(SheetNameList, ",")
    Dim FolderPath As String: FolderPath = ThisWorkbook.Path
    Dim BaseName As String
    BaseName = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 5)

    Application.ScreenUpdating = False
 
    Dim sh As Object
    Dim FilePath As String
    For Each sh In ThisWorkbook.Sheets(SheetNames)
        sh.Copy
        FilePath = FolderPath & "\" & BaseName & " " & sh.Name & ".xlsx"
        Application.DisplayAlerts = False ' overwrite without confirmation
        Workbooks(Workbooks.Count).SaveAs FileName:=FilePath
        Application.DisplayAlerts = True
        Application.ActiveWorkbook.Close SaveChanges:=False
    Next

    Application.ScreenUpdating = True

    MsgBox "Sheets exported.", vbInformation

End Sub

关于excel - 选择特定工作表并将其保存为新工作簿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71444417/

相关文章:

excel - 在 Excel 中以编程方式访问 SmartArt 上的 "Right to Left"

excel - Excel中基于复杂团队规则的前十名排序

variables - excel vba - 使用变量插入公式

c# - Excel 工作表只读和 C#

VBA AddDataField CubeFields - 错误 1004

vb.net - 如何从 .Net Web 系统运行 Excel 宏?

excel - Powershell Excel ComObject 打开自定义分隔符

Excel 2013 VBA - 运行时错误 9 : Subscript out of range

vba - .End(xlDown).Row 从 Excel 2007 更改为 2010

excel - 如何通过多张纸进行比较?