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

如何编写VBA宏将B列所有数据移至A列最后数据行之后?

VBA宏实现B列数据移动至A列末尾

核心实现代码

Sub MoveBtoAEnd()
    Dim lastRowA As Long
    Dim lastRowB As Long
    
    ' 获取A列最后一个非空单元格的行号
    lastRowA = Cells(Rows.Count, "A").End(xlUp).Row
    ' 获取B列最后一个非空单元格的行号
    lastRowB = Cells(Rows.Count, "B").End(xlUp).Row
    
    ' 剪切B列所有数据(从B1到B最后一行)
    Range("B1:B" & lastRowB).Cut
    ' 粘贴到A列最后非空行的下一行
    Range("A" & lastRowA + 1).Select
    ActiveSheet.Paste
    
    ' 清除剪切板选中状态(可选)
    Application.CutCopyMode = False
End Sub

关键逻辑说明

  • Cells(Rows.Count, "A").End(xlUp).Row:从列的最后一行向上定位第一个非空单元格,精准获取A列数据的末尾行号,适配任意数据量。
  • Range("B1:B" & lastRowB).Cut:通过动态拼接行号,确保选中B列全部有效数据进行剪切。
  • Range("A" & lastRowA + 1):直接定位到A列数据的下一行作为粘贴起点,保证数据衔接有序。

补充提示

如果后续场景中B列可能存在中间空值,可将剪切范围改为Range("B1").CurrentRegion.Cut,自动选中B列连续的数据块,无需依赖末尾行号判断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 02:15:58