如何在 Excel 中将每个工作表导出并另存为单独的新工作簿


Excel 广泛应用于各个行业和职业,包括金融、会计、数据分析、项目管理、销售等等。其多功能性和强大的功能使其成为操作和分析数据、创建报告并打印、做出明智的商业决策的强大工具。要将每个工作表导出并另存为 Excel 中的单独新工作簿,可以使用 VBA(Visual Basic for Applications)代码。

如何在 Excel 中将每个工作表导出并另存为单独的新工作簿

以下是如何实现此目的的示例

步骤 1

打开您的 Excel 工作簿。

在工作表中创建示例数据。在本例中,创建了 3 个工作表,分别为订单、产品和客户。

订单工作表

产品工作表

客户工作表

步骤 2

按“Alt + F11”打开 Visual Basic 编辑器。

通过单击菜单中的“插入”>“模块”插入一个新模块。

将以下 VBA 代码粘贴到模块中

Sub ExportWorksheets()
    Dim OriginalWorkbook As Workbook
    Dim NewWorkbook As Workbook
    Dim OriginalWorksheet As Worksheet
    Dim NewWorksheet As Worksheet
    
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    
    Set OriginalWorkbook = ThisWorkbook 'Assuming the code is running from the 
workbook you want to split
    
    For Each OriginalWorksheet In OriginalWorkbook.Worksheets
        Set NewWorkbook = Workbooks.Add 'Create a new workbook for each worksheet
        Set NewWorksheet = NewWorkbook.Worksheets(1) 'Get the first worksheet of 
the new workbook
        
        OriginalWorksheet.Copy Before:=NewWorksheet 'Copy the original worksheet 
to the new workbook
        
        'Remove other worksheets in the new workbook
        While NewWorkbook.Worksheets.Count > 1
            NewWorkbook.Worksheets(2).Delete
        Wend
        
        'Save the new workbook with the name of the original worksheet
        NewWorkbook.SaveAs "E:\Assignments\3rd Assignments\How to export and save each 
worksheet as separate new workbook in Excel\NewSheets" & OriginalWorksheet.Name & ".xlsx"
        
        NewWorkbook.Close SaveChanges:=False 'Close the new workbook without saving changes
    Next OriginalWorksheet
    
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True    
    MsgBox "Worksheets exported successfully!", vbInformation
End Sub

屏幕截图如下所示

步骤 3

如果您想从不同的工作簿导出工作表,请修改 Set OriginalWorkbook = ThisWorkbook 行。将“E:\Assignments\3rd Assignments\How to export and save each worksheet as separate new workbook in Excel\NewSheets”替换为您要保存新工作簿的所需文件夹路径。

步骤 4

按“F5”或单击“运行”按钮以执行代码。

现在您将收到工作表已成功导出的弹出窗口。

此 VBA 代码将遍历原始工作簿中的每个工作表,创建一个新工作簿,将当前工作表复制到新工作簿,删除新工作簿中的任何其他工作表,以原始工作表名称保存新工作簿,并关闭新工作簿而不保存更改。每个工作表都将作为单独的新工作簿保存到指定的文件夹路径中。

注意

在运行代码之前,请确保将文件路径替换为您所需的目的地路径。

在 NewSheets 文件夹中,每个工作表都导出并另存为单独的新工作簿。请参阅屏幕截图

结论

使用 VBA(Visual Basic for Applications)代码可以实现将每个工作表导出并另存为 Excel 中的单独新工作簿。通过执行几个简单的步骤,您可以自动化此过程并有效地管理您的工作表。

首先,打开您的 Excel 工作簿,然后按“Alt + F11”访问 Visual Basic 编辑器。插入一个新模块,并将提供的 VBA 代码粘贴到其中。该代码初始化变量并循环遍历工作簿中的每个工作表。对于每个工作表,都会创建一个新的工作簿,并将原始工作表复制到其中。删除新工作簿中的其他工作表以确保仅保留复制的工作表。然后,将新工作簿保存为从原始工作表名称派生的名称,最后关闭而不保存更改。

通过根据需要修改代码并指定所需的目的地文件夹,您可以有效地将每个工作表导出为单个工作簿。这种自动化极大地简化了流程,在使用 Excel 中的多个工作表时节省了时间和精力。

更新于: 2023-07-12

483 次浏览

启动您的 职业生涯

通过完成课程获得认证

立即开始
广告