跳到主要内容

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

作者:凯莉 最后修改时间:2024-07-19

假设您要导出一个或多个工作表并将其另存为新工作簿,您将如何处理? 通常,您可以复制每个工作表并粘贴到新工作簿中。 但是在这里,我们为您带来一些方便的技巧来应对它:


使用移动或复制命令将工作表逐个保存为新工作簿

使用 移动或复制 命令将帮助您快速将一个或多个工作表导出或复制到新工作簿。

步骤1:在选项卡栏中选择工作表名称。 您可以按住多个选择 按Ctrl 键或 转移 键。

步骤2:右键单击工作表名称,然后单击 移动或复制 从上下文菜单中。

将工作表保存为新工作簿 1 的屏幕截图

步骤3: 移动或复制 对话框中,选择 (新书) 的下拉列表中的项目 将选定的图纸移到书.

将工作表保存为新工作簿 2 的屏幕截图

步骤4:然后点击 OK,现在您已切换到 新工作簿 与导出或复制的工作表,单击 文件 > 优惠 保存新的工作簿。

请注意:移动或复制 对话框中,有一个 建立副本 选项。 如果您不选中它,它将把选定的工作表移出原始工作簿。 如果选中它,它将复制所选的工作表。


使用 Kutools for Excel 轻松批量保存工作表作为新工作簿

如果您有多个工作表需要保存为单独的工作簿,第一种方法不是一个好的选择。下面的 VBA 代码对于 Excel 初学者来说可能有点复杂。在这里您可以使用 拆分工作簿 实用程序 Kutools for Excel 轻松批量保存一个工作簿的每个工作表到单独的新工作簿中。

安装 Kutools for Excel 后,单击“ Kutools 加 > 工作簿 > 拆分工作簿 打开 拆分工作簿 对话框。然后进行如下配置。

  1. 勾选要另存为新工作簿的工作表。默认情况下,会勾选所有工作表。
  2. 可以通过选中 附加选项 部分。
  3. 点击 OK.
    使用 Kutools for Excel 1 将工作表保存为新工作簿的屏幕截图
  4. A 选择“文件夹” 弹出对话框,然后您需要选择一个目标文件夹来保存新的工作簿,然后单击 选择“文件夹” 按钮。

然后,指定的工作表或所有工作表将立即保存为单独的新工作簿。

:

使用VBA代码将工作表导出并保存为新工作簿

下面的代码将导出新工作簿中的所有可见工作表,并将工作表和原始工作表的名称保存在与活动工作簿相同路径的新创建的文件夹中。 请执行以下步骤:

步骤1:按住 ALT + F11 键,然后打开 Microsoft Visual Basic应用程序 窗口。

步骤2:点击 插页 > 模块,然后将以下宏粘贴到“模块窗口”中:

VBA:将工作表导出并保存为新工作簿,并保存在新文件夹中。

Sub SplitWorkbook()
'Updateby20200806
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim xWs As Worksheet
Dim xWb As Workbook
Dim xNWb As Workbook
Dim FolderName As String
Application.ScreenUpdating = False
Set xWb = Application.ThisWorkbook

DateString = Format(Now, "yyyy-mm-dd hh-mm-ss")
FolderName = xWb.Path & "\" & xWb.Name & " " & DateString

If Val(Application.Version) < 12 Then
    FileExtStr = ".xls": FileFormatNum = -4143
Else
    Select Case xWb.FileFormat
        Case 51:
            FileExtStr = ".xlsx": FileFormatNum = 51
        Case 52:
            If Application.ActiveWorkbook.HasVBProject Then
                FileExtStr = ".xlsm": FileFormatNum = 52
            Else
                FileExtStr = ".xlsx": FileFormatNum = 51
            End If
        Case 56:
            FileExtStr = ".xls": FileFormatNum = 56
        Case Else:
            FileExtStr = ".xlsb": FileFormatNum = 50
        End Select
End If

MkDir FolderName

For Each xWs In xWb.Worksheets
On Error GoTo NErro
    If xWs.Visible = xlSheetVisible Then
    xWs.Select
    xWs.Copy
    xFile = FolderName & "\" & xWs.Name & FileExtStr
    Set xNWb = Application.Workbooks.Item(Application.Workbooks.Count)
    xNWb.SaveAs xFile, FileFormat:=FileFormatNum
    xNWb.Close False, xFile
    End If
NErro:
    xWb.Activate
Next

    MsgBox "You can find the files in " & FolderName
    Application.ScreenUpdating = True
End Sub

步骤3:按下 F5 运行此代码的关键。 然后将弹出一个提示框,告诉您新导出的工作簿的位置,并且原始工作簿的所有工作表都已导出到一些新的单独工作簿中,这些工作簿在新的特定文件夹中命名了原始工作表。 查看屏幕截图:

使用 VBA 1 将工作表保存为新工作簿的屏幕截图

导出并将每个工作表另存为新工作簿


相关文章:

最佳办公生产力工具

🤖 Kutools 人工智能助手:基于以下内容彻底改变数据分析: 智能执行   |  生成代码  |  创建自定义公式  |  分析数据并生成图表  |  调用 Kutools 函数...
热门特色: 查找、突出显示或识别重复项   |  删除空白行   |  合并列或单元格而不丢失数据   |   不使用公式进行四舍五入 ...
超级查询: 多条件VLookup    多值VLookup  |   跨多个工作表的 VLookup   |   模糊查询 ....
高级下拉列表: 快速创建下拉列表   |  依赖下拉列表   |  多选下拉列表 ....
列管理器: 添加特定数量的列  |  移动列  |  切换隐藏列的可见性状态  |  比较范围和列 ...
特色功能: 网格焦点   |  设计图   |   大方程式酒吧    工作簿和工作表管理器   |  资源库 (自动文本)   |  日期选择器   |  合并工作表   |  加密/解密单元格    按列表发送电子邮件   |  超级筛选   |   特殊过滤器 (过滤粗体/斜体/删除线...)...
前 15 个工具集12 文本 工具 (添加文本, 删除字符,...)   |   50+ 图表 类型 (甘特图,...)   |   40+ 实用 公式 (根据生日计算年龄,...)   |   19 插入 工具 (插入二维码, 从路径插入图片,...)   |   12 转化 工具 (小写金额转大写, 货币兑换,...)   |   7 合并与拆分 工具 (高级组合行, 分裂细胞,...)   |   ... 和更多

使用 Kutools for Excel 增强您的 Excel 技能,体验前所未有的效率。 Kutools for Excel 提供了 300 多种高级功能来提高生产力并节省时间。  单击此处获取您最需要的功能...

描述


Office Tab 为 Office 带来选项卡式界面,让您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!

Comments (63)
Rated 5 out of 5 · 1 ratings
This comment was minimized by the moderator on the site
Thanks, this was awesome. There are dozens of pages on the internet talking about how to do this. You guys are the only ones that got the VBA code right. Many thanks. I had a big monster workbook with about 100 tabs, all relatively small, and the VBA macro knocked it out in about five minutes. Thank God for smart guys like you. :)
Rated 5 out of 5
This comment was minimized by the moderator on the site
This has been extremely helpful, my job was doing some data management manually and this helped me automate it. I do have a question though, as the code is a bit over my head to figure out on my own.

What would I need to change to make it so that it always saves as a CSV file instead of an excel file? I know it'll be part of the IF VAL THEN CASES but I don't follow the formatting of that area.

Thank you,
Matt
This comment was minimized by the moderator on the site
Hi, Matt, I am glad that this article can help you. If you want to save sheets as new CSV files, this article https://www.extendoffice.com/documents/excel/5537-excel-batch-convert-to-csv.html lists the methods on exporting sheets as separated CSV files, hope it can do you a favor.
This comment was minimized by the moderator on the site
I have been using this VBA Code for some time and it worked like a charm until I changed computers. I have the same version of excel but now I am getting a Run Time Error "76" Path Not found. Any ideas what could be causing this? It looks like it is hanging up at MkDir. Any help you can provide is appreciated.
This comment was minimized by the moderator on the site
Hi, can I ask which office version you use?
This comment was minimized by the moderator on the site
I'm having this issue as well. I ran it once a month ago just fine and this came up just now.
This comment was minimized by the moderator on the site
You are amazing! Thank you so very much!
This comment was minimized by the moderator on the site
Thank you so much ! great and useful.
There are no comments posted here yet
Load More
Leave your comments
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations