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

ms excelmicrosoft technologiescomputers更新于 2024/8/24 5:00:17

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 individual new workbook in Excel\NewSheets"替换为您要保存新工作簿的文件夹路径。

步骤 4

按"F5"或点击"运行"按钮执行代码。

现在,您会在工作表成功导出时看到弹窗。

此 VBA 代码将遍历原始工作簿中的每个工作表,创建一个新工作簿,复制当前工作表到新工作簿,删除新工作簿中所有额外的工作表,使用原始工作表的名称保存新工作簿,然后关闭新工作簿而不保存更改。每个工作表都将作为单独的新工作簿保存在指定的文件夹路径中。

注意

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

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

结论

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

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

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


相关文章


有用资源