DeepSeek最牛Excel表格处理:自动合并12个月工资表

Excel精英培讯 2025-02-11 15:53:02

最近DeepSeeK的火烧进了office圈,一下冒出了很多相关excel表格处理教程,似乎有全面替代人工的趋势。但如果论实用,今天兰色带来一个超牛的的新功能,绝对会让你喜欢。

先看效果演示:

如下图所示在文件夹中有12个月的工资表文件,每个工作簿内有1~N个地市工资表。

要求:从所有月份文件中把郑州的工资表合并到一个新工作簿中

在工具栏中点击合并工作表 - 选取要合并的12个月文件 - 输入要合并的工作表名称 - 点击确定,很快合并完成。

如果要合并多个地区,比如郑州和上海,在输入框中用逗号连接即可。

怎么样,是不是很神奇。接下来兰色就从0教你如何制作自已的工作表合并功能。

1、 让DeepSeep写代VBA代码

于是兰色打开DeepSeeK的官方网页(https://www.deepseek.com/),提交了要求。

Sub MergeExcelFiles()    Dim FileToOpen As Variant    Dim TargetWorkbook As Workbook    Dim SourceWorkbook As Workbook    Dim ws As Worksheet    Dim SheetNames As String    Dim SheetArray() As String    Dim i As Integer ' 禁用屏幕更新和警告提示Application.ScreenUpdating = FalseApplication.DisplayAlerts = False' 步骤1:选择多个Excel文件 [[6]]FileToOpen = Application.GetOpenFilename(Filefilter:="Excel Files (*.xls*), *.xls*", MultiSelect:=True)If Not IsArray(FileToOpen) Then Exit Sub' 步骤2:获取要合并的工作表名称 [[2]]SheetNames = InputBox("请输入要合并的工作表名称(多个用逗号分隔),不输入则合并所有:")If SheetNames <> "" ThenSheetArray = Split(SheetNames, ",")For i = LBound(SheetArray) To UBound(SheetArray)SheetArray(i) = Trim(SheetArray(i))Next iEnd If' 创建新工作簿 [[6]]Set TargetWorkbook = Workbooks.Add' 遍历所有选中的文件 [[9]]For Each filePath In FileToOpenSet SourceWorkbook = Workbooks.Open(filePath)' 获取文件名(不带扩展名) [[7]]Dim FileName As StringFileName = Left(SourceWorkbook.Name, InStrRev(SourceWorkbook.Name, ".") - 1)' 遍历所有工作表 [[8]]For Each ws In SourceWorkbook.Worksheets' 检查是否需要处理当前工作表 [[2]]If SheetNames = "" Or IsInArray(ws.Name, SheetArray) Then' 复制工作表到新工作簿 [[11]]ws.Copy After:=TargetWorkbook.Sheets(TargetWorkbook.Sheets.Count)' 重命名工作表 [[4]]ActiveSheet.Name = FileName & "_" & ws.NameEnd IfNext wsSourceWorkbook.Close SaveChanges:=FalseNext filePath' 删除初始空白工作表 [[4]]Application.DisplayAlerts = FalseTargetWorkbook.Sheets(1).DeleteApplication.DisplayAlerts = True' 恢复设置Application.ScreenUpdating = TrueMsgBox "合并完成!共合并 " & TargetWorkbook.Sheets.Count & " 个工作表", vbInformationEnd Sub' 辅助函数:检查元素是否在数组中 [[2]]Function IsInArray(valToBeFound As Variant, arr As Variant) As BooleanDim element As VariantFor Each element In arrIf element = valToBeFound ThenIsInArray = TrueExit FunctionEnd IfNext elementIsInArray = FalseEnd Function

2、制作加载宏文件

新建一个空白工作簿,开发工具 - Visual basic(WPS需要先安装WPS vba插件),在打开的VBE编辑器窗口,点击新建 - 模块,然后把上面的代码粘贴进去,把Sub后的宏名称改为“合并工作表"

另存为加载宏文件,路径默认

3、添加自定义命令

文件 - Excel选项 - 自定义功能区 - 来源 宏,选取合并工作表宏名称,点击添加按钮把该宏名称添加至新建的选项卡中。(如果没有自定义选项卡,先点右侧新建选项卡)

工具栏中就可以看到它了

以后你就可以在任一个工作簿中点击这个命令使用合并功能了。

4 阅读:233