2025年02月09日 13:45
探索未至之境


我给你发一个Excel工作簿,里面有三个工作表,他们的格式是一样的,你能帮我把他们合并在一起吗?









同样的经过深度思考以后,deepseek给出了规范、清晰的代码,甚至还包含了注释。deepseek给出的代码如下:
Sub MergeSheets() Application.ScreenUpdating = False ' 关闭屏幕刷新,提升速度 Application.Calculation = xlCalculationManual ' 关闭自动计算 Dim wsDest As Worksheet Dim wsSrc As Worksheet Dim lastRowSrc As Long Dim lastRowDest As Long Dim headerRow As Range ' 创建或清空目标工作表 On Error Resume Next Set wsDest = ThisWorkbook.Sheets("合并结果") If Err.Number <> 0 Then Set wsDest = ThisWorkbook.Sheets.Add(After:=Sheets(Sheets.Count)) wsDest.Name = "合并结果" Else wsDest.Cells.ClearContents ' 清空原有数据 End If On Error GoTo 0 ' 复制标题行(假设所有工作表结构一致) Set headerRow = ThisWorkbook.Sheets("Sheet1").Rows(1) headerRow.Copy Destination:=wsDest.Range("A1") ' 循环处理每个工作表 For Each wsSrc In ThisWorkbook.Sheets If wsSrc.Name <> wsDest.Name And _ (wsSrc.Name = "Sheet1" Or wsSrc.Name = "Sheet2" Or wsSrc.Name = "Sheet3") Then lastRowSrc = wsSrc.Cells(wsSrc.Rows.Count, "A").End(xlUp).Row ' 获取数据最后一行 lastRowDest = wsDest.Cells(wsDest.Rows.Count, "A").End(xlUp).Row + 1 ' 目标表下一行 ' 复制数据(从第2行开始,跳过标题) wsSrc.Range("A2:J" & lastRowSrc).Copy _ Destination:=wsDest.Range("A" & lastRowDest) End If Next wsSrc Application.ScreenUpdating = True ' 恢复屏幕刷新 Application.Calculation = xlCalculationAutomatic ' 恢复自动计算 MsgBox "合并完成!共合并 " & wsDest.UsedRange.Rows.Count - 1 & " 行数据。", vbInformationEnd Sub
如果你没用过VBA也没关系,deepseek同样给出了详细的使用步骤。将代码复制到同一个工作簿中,按照步骤插入和执行。



还没有评论,来说两句吧...