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

Excel VBA:基于两列确定目标行,解决非均匀数据粘贴覆盖问题

解决方法

核心思路是分别获取目标两列的最后有数据行号,取其中的最大值再加1,确保无论哪一列数据更长,新数据都能追加到所有列的最下方,不会覆盖已有内容。

修改后的代码如下:

Sub CopyData()
    Dim wsCopy As Worksheet
    Dim wsDest As Worksheet
    Dim lDestLastRow_A As Long
    Dim lDestLastRow_B As Long
    Dim lDestLastRow As Long

    Set wsCopy = Sheets("CopyFrom")
    Set wsDest = Sheets("PasteHere")

    ' 获取A列最后有数据的行号
    lDestLastRow_A = wsDest.Cells(wsDest.Rows.Count, "A").End(xlUp).Row
    ' 获取B列最后有数据的行号
    lDestLastRow_B = wsDest.Cells(wsDest.Rows.Count, "B").End(xlUp).Row

    ' 取两列最后行号的最大值,再加1作为新数据的起始行
    lDestLastRow = Application.Max(lDestLastRow_A, lDestLastRow_B) + 1

    wsCopy.Range("C3:F20").Copy
    wsDest.Range("B" & lDestLastRow).PasteSpecial
    
    ' Copy & Paste Date
    wsCopy.Range("B1").Copy
    wsDest.Range("A" & lDestLastRow).PasteSpecial
End Sub

关键说明

  • 新增两个变量分别存储目标两列的最后数据行号,这里以A、B列为例,你可以根据实际需求修改列标识(比如改成"C"、"D")
  • 通过Application.Max()函数取两行号的最大值,再加1得到安全的起始行,彻底避免非均匀数据下的覆盖问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 08:40:42