专栏名称: 秋叶PPT
你爱学习,爱动手,爱分享?关注我们就对了!PPT、Excel、Word、职场成长,每天早上三分钟,碎片时间学起来!
目录
相关文章推荐
秋叶PPT  ·  紧急加印10万册!国内第一本DeepSeek ... ·  9 小时前  
秋叶PPT  ·  用DeepSeek自动生成PPT保姆级教程✨ ·  19 小时前  
秋叶PPT  ·  DeepSeek将魔爪伸向PPT,最令人担心 ... ·  昨天  
旁门左道PPT  ·  PPT重点别再标红了!!丑爆了! ·  3 天前  
51好读  ›  专栏  ›  秋叶PPT

别再用付费插件了!DeepSeek合并Excel工作表,爽翻!

秋叶PPT  · 公众号  · PPT  · 2025-02-25 08:17

正文

秋叶零基础小红书掘金术直播公开课
扫码免费参与!👇
作者:拉登 Dony
编辑:卫星酱


2025 年开年 AI 就火力全开,DeepSeek 横空出世,让所有事情都能借助 AI 重新来过。

而且用上 Deep S eek 之后,就再也回不去了,真的太好用,太牛了!

案例

就拿制作表格来说,大家问得最多的就是如何 合并工作表

市面上虽有不少工具插件能满足这一需求,但基本都需付费。


而 AI 的崛起,尤其是 DeepSeek 的火爆,让原本付费才能实现的操作变得轻而易举。

就像我们下面这个表格,它记录了不同批次的学校改造实施情况,内容极为复杂,涵盖了不同年份和批次的数据。


现在需要把这些数据合并在一起,进行统计分析。

使用 DeepSeek 合并工作表,超级简单,完全免费!人人都能成为 Excel 高手。

01 打开 DeepSeek

首先,打开 DeepSeek 官网,点击【开始对话】。

https://www.deepseek.com/


接着输入需求, 描述要尽可能清晰,最好分步骤说明

以合并工作表为例,我们有两个要求。

总体目标是合并工作表,具体分两步:

一是确保标题不重复合并;

二是合并时在第一列保留原始工作表名称。

表格中有多个工作表,现在需要按照第 1~6 行的标题,对工作表中的数据进行合并汇总。
请你写一个 VBA 代码完成数据的合并,要求如下:
1. 1~6 行的标题,不要重复的合并标题
2. 合并时,第 1 列写入工作表的名称,方便了解数据来源


注意:

上传文件的时候,不一定要把所有的数据都传上去,DeepSeek 对处理的数据行数有限制。

只要 保留几行数据 ,让 AI 识别数据特征就行,或者 截图上传图片 也可以。

随后,AI 会针对我们的要求深入思考、梳理思路,明确方向后便会生成对应的 VBA 代码。

大部分 AI 都具备编写代码的能力,但像 DeepSeek 这样能写出近乎完美、出错率极低代码的,着实少见。


代码编写完成后,接下来是执行代码的步骤。

Sub MergeSheetsWithSource() Dim wsSummary As Worksheet Dim ws As Worksheet Dim lastRow As Long Dim summaryRow As Long Dim headerCopied As Boolean Dim i As Integer

' 创建汇总表 Set wsSummary = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)) wsSummary.Name = "汇总数据"

' 初始化标志 headerCopied = False summaryRow = 1

Application.ScreenUpdating = False

' 遍历所有工作表 For Each ws In ThisWorkbook.Sheets If ws.Name <> wsSummary.Name Then ' 跳过汇总表

' 处理标题行(1-6 行) If Not headerCopied Then ' 添加数据来源列 ws.Rows("1:6").Copy wsSummary.Cells(summaryRow, 1).PasteSpecial xlPasteAll wsSummary.Cells(1, 1).Value = "数据来源"

' 调整列位置 wsSummary.Columns(1).Insert Shift:=xlToRight summaryRow = 7 ' 跳过标题行 headerCopied = True End If

' 处理数据行(从第 7 行开始) lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row If lastRow >= 7 Then Dim dataRange As Range Set dataRange = ws.Range("A7:Y" & lastRow)

' 复制数据并添加来源 dataRange.Copy wsSummary.Cells(summaryRow, 2).PasteSpecial xlPasteValues

' 添加工作表名称到第一列 wsSummary.Range(wsSummary.Cells(summaryRow, 1), _ wsSummary.Cells(summaryRow + dataRange.Rows.Count - 1, 1)) = ws.Name

summaryRow = summaryRow + dataRange.Rows.Count End If End If Next ws

' 格式整理 With wsSummary .Columns(1).ColumnWidth = 20 .Columns(2).ColumnWidth = 15 .Rows("1:6").Font.Bold = True .Cells(1, 1).EntireRow.Insert ' 添加标题分隔行 End With

Application.CutCopyMode = False Application.ScreenUpdating = True MsgBox "数据合并完成!共合并 " & summaryRow - 7 & " 行数据", vbInformationEnd Sub

02 使用 VBA 代码

首先,复制写好的代码,回到表格界面。


你可以在开发工具里点击「Visual Basic」,也可以在任意工作表上单击右键,选择「查看代码」。


之后,在左侧的项目工具栏中单击右键,插入一个模块,再将代码粘贴到模块里。



把鼠标置于代码中间,点击执行按钮,AI 便能迅速将所有工作表的数据合并在一起,还能完美保留复杂的表头。


合并后的效果。

03 保存文件

最后,一定要把文件另存为 XLSM 格式 ,这样写好的代码就能保存下来。

下次再遇到同样的需求,无需再次求助 AI,直接执行代码即可。

04 添加按钮

为了让代码执行更便捷,我们可以在插入选项卡中插入一个形状,在形状上右键选择「指定宏」。






请到「今天看啥」查看全文