如何修改VBA实现每15个单元格分组拼接后逐行输出至C列
修改VBA代码实现按组拼接单元格内容
这里是调整后的代码,实现将A2:A200按每15个单元格一组拼接,结果依次输出到C1、C2等单元格:
Sub vba_concatenate_by_group() Dim i As String Dim startRow As Integer, endRow As Integer Dim outputRow As Integer Dim cell As Range ' 初始化起始行和输出行号 startRow = 2 outputRow = 1 Do While startRow <= 200 ' 计算当前组的结束行,不超过A200的范围 endRow = startRow + 14 If endRow > 200 Then endRow = 200 ' 重置拼接字符串,确保每组内容独立 i = "" ' 遍历当前组的所有单元格 For Each cell In Range(Cells(startRow, "A"), Cells(endRow, "A")) If LenB(cell) > 0 Then ' 仅处理非空单元格 If LenB(i) = 0 Then i = cell.Value Else i = i & " OR " & cell.Value End If End If Next cell ' 将当前组的拼接结果写入对应C列单元格 Cells(outputRow, "C").Value = Trim(i) ' 更新下一组的起始行和输出行号 startRow = endRow + 1 outputRow = outputRow + 1 Loop End Sub
关键改动说明
- 新增分组控制逻辑:用
startRow和endRow标记每组的起止位置,确保每15个单元格为一组,最后一组不足15个时自动适配到A200 - 移除原代码的
Exit For:原代码遇到空单元格就停止处理,现在改为遍历完每组所有单元格,仅跳过空单元格,保证处理完整的A2:A200区域 - 每组独立拼接:每组开始前重置拼接字符串
i,避免不同组的内容互相干扰 - 动态输出位置:用
outputRow控制结果写入C列的行号,实现每组结果依次存入C1、C2、C3...
内容的提问来源于stack exchange,提问作者qplsn99
相关产品推荐
相关产品推荐

