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

如何用VBA将一行内容追加到上一行末尾?

VBA实现选中区域内下一行内容追加到上一行末尾

以下是满足需求的VBA宏代码,仅作用于你选中的单元格区域,自动将相邻下一行的所有内容追加到上一行的最后非空单元格后方,完成后删除原下一行:

Sub AppendNextRowToPrevious()
    Dim selectedRange As Range
    Dim currentRow As Long
    Dim lastCol As Long
    Dim nextRowLastCol As Long
    
    ' 获取用户选中的区域
    Set selectedRange = Selection
    
    ' 从选中区域的最后一行向上遍历,避免删除行后索引混乱
    For currentRow = selectedRange.Rows.Count To 2 Step -1
        ' 定位上一行的最后一个非空单元格列号
        lastCol = selectedRange.Cells(currentRow - 1, selectedRange.Columns.Count).End(xlToLeft).Column
        ' 定位当前行(待追加的下一行)的最后一个非空单元格列号
        nextRowLastCol = selectedRange.Cells(currentRow, selectedRange.Columns.Count).End(xlToLeft).Column
        
        ' 将下一行的所有非空内容复制到上一行末尾
        selectedRange.Cells(currentRow, 1).Resize(1, nextRowLastCol).Copy _
            Destination:=selectedRange.Cells(currentRow - 1, lastCol + 1)
        
        ' 删除已完成追加的原下一行
        selectedRange.Rows(currentRow).Delete
    Next currentRow
End Sub

代码说明

  • 从下往上循环:如果从上到下处理,删除行后后续行的索引会错乱,从最后一行向上遍历可避免这个问题
  • 自适应行长度:用End(xlToLeft)自动识别每行的最后非空单元格,适配不同长度的行
  • 仅作用选中区域:通过Selection限定操作范围,不会修改未选中的行内容

使用步骤

  1. 打开Excel,按下Alt+F11打开VBA编辑器
  2. 右键点击当前工作簿 → 插入 → 模块
  3. 将上述代码粘贴到模块窗口中
  4. 返回Excel,选中需要处理的目标行(比如示例中的两行数据)
  5. 按下Alt+F8,选择AppendNextRowToPrevious并执行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 01:12:45