在 Excel 中处理多个工作表的数据时,合并数据是一项繁琐的任务,尤其是当你需要手动复制粘贴时。这种工作不仅耗时,还容易出错。但是,借助 Excel VBA 的强大功能,我们可以编写一个脚本,自动将多个 sheet 表中的数据合并到一个新建的工作表中。
接下来,在本节中,我将详细介绍如何编写这样的 VBA 脚本,通过学习该案例,您将掌握如何在多表之间自动合并数据,并通过一些关键的 VBA 语法和逻辑,使你的 Excel 工作更高效、更智能。
如下为一张销售订单数据Excel工作簿,内含"1日","2日","3日"共三个sheet表,现在需要将这三个sheet表合并为一个sheet表,并且,当有新增加的sheet表时,也可以继续合并,常规做法是一个一个sheet表复制、粘贴,倘若有上百个这样的sheet表,处理效率就很慢。

接下来,我将使用Excel VBA编写代码进行批量合并,要使用Excel VBA功能,需要在自定义功能区中勾选"开发工具"选项,默认在主页不显示"开发工具"选项,需要手动勾选。首先在Excel工作簿中点击“文件”选项。

然后在对应的菜单下点击“选项”按钮。

打开Excel选项,点击“自定义功能区”,然后勾选“开发工具”,点击“确定”按钮。

在主页功能区即可看到已经加载出“开发工具”选项。

在 Excel 中点击 "开发工具" 选项卡,点击 "Visual Basic" 按钮,打开 VBA 编辑器,VBA代码都是写在VBA 编辑器运行。

如下即为VBA 编辑器的操作界面。

在 VBA 编辑器窗口中,右键 "VBAProject(销售订单数据.xlsx)" ,依次点击 "插入" -> "模块",在插入的模块中编写 VBA 代码。

从前文我们了解到,编写VBA代码有一定的难度和门槛,对于初学者来说,需要耗费大量的时间精力和学习成本,好在有人工智能(AI技术),只需要跟AI对话,就可以快速生成可用代码,以DeepSeek为例,这里发送具体的指令:
假设你是一个Excel专家,现有一个Excel工作簿中包含多个sheet表,每个sheet表的数据字段标题都一样,请你编写Excel VBA,将这几个sheet表中的数据合并至新建的sheet表中,当有新的sheet表添加进来时,需清除之前合并的数据,重新合并,请按照要求写出详细的操作步骤和VBA代码。

Tips:对于AI初学者来说,一个成功的AI对话(提示词)需要注意下面三个部分,分别是:AI角色定位、需求背景说明、内容输出要求,有了这三部分,才能更好的输出结果,对于上面的提示词,我们可以拆解为下面三部分内容。
AI角色定位:假设你是一个Excel专家需求背景说明:现有一个Excel工作簿中包含多个sheet表,每个sheet表的数据字段标题都一样,请你编写Excel VBA,将这几个sheet表中的数据合并至新建的sheet表中,当有新的sheet表添加进来时,需清除之前合并的数据,重新合并内容输出要求:请按照要求写出详细的操作步骤和VBA代码如下为完整的使用DeepSeek生成的代码,仅需要简单的一句指令,DeepSeek即快速响应我们的需求,生成VBA代码以后,点击"复制代码"按钮,将代码复制到剪贴板。

将VBA代码复制粘贴到到 VBA 编辑器中,点击 "运行" 按钮,或按下 F5 键运行该脚本。

返回 Excel 工作簿,由结果可以看到,所有的 sheet 表数据均合并至新的 "合并结果" 表中。

为了方便有新增的sheet表进行数据合并,可以添加一个表单控件,点击"开发工具",插入一个表单控件。

点击宏名称用于指定宏,然后点击确定按钮。

如下是设置后的表单控件,只要点击表单控件"开始合并",即可一键进行数据合并。

为了将编写的VBA可以永久保存,可以将工作簿保存为 *.xlsm 格式,点击"文件"选项,在保存类型中选择"Excel启用宏的工作簿",即可保存宏。

如果有新增的sheet表,比如这里新增"4日","5日"两个sheet表,仅需点击表单控件"开始合并",即可一键合并。

如下红色标记的地方,即为新增的sheet表批量合并后的结果。

通过这个案例,我们见识到了 VBA 在处理多表数据合并中的强大能力。无论是对于需要频繁处理数据报表的日常工作,还是面对复杂的数据管理,这段代码都可以为你提供极大的便利。接下来,我们将继续探索更多实用的AI+Excel的案例,帮助您进一步提升 Excel 数据分析和自动化办公水平。