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

VBA 如何修改代码以复制不含表头的指定单元格区域数据

VBA代码调整方案

调整后可直接运行的代码

' 仅清空input_4表头下方的数值,保留第1行原有表头
wbMe.Sheets("input_4").Range("A2:D" & wbMe.Sheets("input_4").Rows.Count).ClearContents

With wb.Sheets("vintage_agr")
    ' 定位vintage_agr表A列最后一行有数据的行号,避免复制空行
    Dim lastRow As Long
    lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
    
    ' 复制A2:C列的数值到input_4的A2位置
    .Range("A2:C" & lastRow).Copy
    wbMe.Sheets("input_4").Range("A2").PasteSpecial Paste:=xlPasteValues
    
    ' 复制H2:H列的数值到input_4的D2位置
    .Range("H2:H" & lastRow).Copy
    wbMe.Sheets("input_4").Range("D2").PasteSpecial Paste:=xlPasteValues
End With

' 可选:清空剪贴板避免残留复制提示
Application.CutCopyMode = False

高效优化方案(无需走剪贴板,大数据量下速度提升明显)

Dim lastRow As Long
With wb.Sheets("vintage_agr")
    lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
    ' 直接赋值A:C列数据,跳过剪贴板操作
    wbMe.Sheets("input_4").Range("A2:C" & lastRow).Value = .Range("A2:C" & lastRow).Value
    ' 直接赋值H列数据到D列对应位置
    wbMe.Sheets("input_4").Range("D2:D" & lastRow).Value = .Range("H2:H" & lastRow).Value
End With

修改说明

  • 清空范围从整列A:D调整为A2:D起始的区域,保留input_4第1行原有表头,不会影响已配置的数据透视表规则
  • 复制范围从整列调整为从第2行开始的有效数据区域,仅复制表头下方的数值,不会覆盖目标表表头
  • 自动判断源数据的最后一行,不会复制多余空行,减少目标表的冗余数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 03:15:02