如何在 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 中的多个工作表时节省了时间和精力。