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

如何用宏批量合并多列多行内容?Excel不规则项目行数处理需求

批量合并Excel项目对应的多行Article/Quantity数据

以下是可以直接运行的VBA宏,能自动遍历上万行数据,把每个项目对应的所有Article和Quantity合并成一行:

Sub MergeProjectItems()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim currentProject As String
    Dim mergedText As String
    Dim outputRow As Long
    
    ' 设置要处理的工作表,可根据实际修改Sheet名称
    Set ws = ThisWorkbook.Sheets("Sheet1")
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    outputRow = 1
    
    ' 遍历所有行
    For i = 1 To lastRow
        ' 遇到新项目时,先输出上一个项目的合并结果(如果有)
        If ws.Cells(i, "A").Value <> "" Then
            If currentProject <> "" Then
                ws.Cells(outputRow, "D").Value = currentProject
                ws.Cells(outputRow, "E").Value = mergedText
                outputRow = outputRow + 1
                mergedText = ""
            End If
            currentProject = ws.Cells(i, "A").Value
        End If
        
        ' 合并当前行的Article和Quantity
        If ws.Cells(i, "B").Value <> "" And ws.Cells(i, "C").Value <> "" Then
            If mergedText <> "" Then mergedText = mergedText & ", "
            mergedText = mergedText & ws.Cells(i, "B").Value & "(" & ws.Cells(i, "C").Value & ")"
        End If
    Next i
    
    ' 处理最后一个项目
    If currentProject <> "" Then
        ws.Cells(outputRow, "D").Value = currentProject
        ws.Cells(outputRow, "E").Value = mergedText
    End If
    
    MsgBox "合并完成!结果已输出到D、E列"
End Sub

使用说明:

  • 打开目标Excel文件,按Alt+F11打开VBA编辑器
  • 右键左侧的工作簿名称 → 插入 → 模块
  • 将上述代码粘贴到模块窗口中
  • 修改代码里的Sheet1为你实际的工作表名称(如果需要)
  • 按F5运行宏,或者点击工具栏的运行按钮

效果说明:

  • 合并后的项目名称会放在D列,对应的Article(Quantity)格式合并内容放在E列
  • 自动处理行数不固定的项目,无需手动拆分或标记
  • 上万行数据处理速度很快,不会有明显卡顿

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 03:10:56