You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将多个TXT文件中的表格复制粘贴到单个Excel工作表中?

Excel批量合并与文本分列解决方案

核心需求

  • 打开同一文件夹内所有目标Excel文件
  • 首份文件复制第6行(表头)至数据末尾;后续文件从第7行开始复制(跳过重复表头)
  • 将数据追加到主工作表,不覆盖已有内容
  • 对主工作表执行逗号分隔的文本分列操作
  • 关闭所有非主工作表的文件

兼容版VBA代码

以下代码适配Excel 2010及以上版本,解决兼容性报错问题:

Sub BatchMergeAndSplit()
    Dim mainWB As Workbook, sourceWB As Workbook
    Dim mainWS As Worksheet, sourceWS As Worksheet
    Dim folderPath As String, fileName As String
    Dim firstFile As Boolean
    Dim lastRow As Long, destLastRow As Long
    
    ' 绑定主工作簿和默认工作表
    Set mainWB = ThisWorkbook
    Set mainWS = mainWB.Sheets(1) ' 可改为指定工作表名,如mainWB.Sheets("汇总表")
    
    ' 获取当前文件夹路径
    folderPath = mainWB.Path & "\"
    fileName = Dir(folderPath & "*.xlsx") ' 如需兼容xls,改为"*.xls*"
    firstFile = True
    
    ' 遍历所有Excel文件
    Do While fileName <> ""
        If fileName <> mainWB.Name Then
            ' 以只读模式打开源文件,避免锁定
            Set sourceWB = Workbooks.Open(folderPath & fileName, ReadOnly:=True)
            Set sourceWS = sourceWB.Sheets(1) ' 可改为指定源工作表名
            
            ' 确定复制范围
            lastRow = sourceWS.Cells(sourceWS.Rows.Count, "A").End(xlUp).Row
            If firstFile Then
                sourceWS.Rows("6:" & lastRow).Copy
                firstFile = False
            Else
                sourceWS.Rows("7:" & lastRow).Copy
            End If
            
            ' 粘贴到主表末尾
            destLastRow = mainWS.Cells(mainWS.Rows.Count, "A").End(xlUp).Row + 1
            mainWS.Cells(destLastRow, "A").PasteSpecial xlPasteValuesAndNumberFormats
            
            ' 关闭源文件,不保存变更
            sourceWB.Close SaveChanges:=False
        End If
        fileName = Dir()
    Loop
    
    ' 执行逗号分列
    With mainWS.Range("A1").CurrentRegion
        .TextToColumns Destination:=.Cells(1, 1), DataType:=xlDelimited, _
        Comma:=True, TextQualifier:=xlDoubleQuote
    End With
    
    Application.CutCopyMode = False
    MsgBox "处理完成"
End Sub

使用步骤

  1. 打开作为汇总主表的Excel文件
  2. 按Alt + F11打开VBA编辑器
  3. 右键点击工程窗口中的主工作簿名称 → 插入 → 模块
  4. 粘贴上述代码到模块中
  5. 按F5运行宏,或通过Excel界面「开发工具」→「宏」执行

关键提示

  • 确保所有待处理文件与主文件在同一文件夹
  • 若源文件数据不在第一个工作表,修改sourceWB.Sheets(1)为具体工作表名(如sourceWB.Sheets("数据"))
  • 运行前备份所有文件,防止数据意外丢失

内容的提问来源于stack exchange,提问作者Mikey_Bustos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 00:35:20