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

将行数据复制到另一列最后一行时出现VBA 1004应用定义错误

VBA Error 1004 问题修复

错误原因

  • 数据类型溢出:VBA里Integer是16位整数,最大值仅32767。Excel 2007及以后版本支持1048576行,当F列最后一行超过32767时,finalRowF会溢出,触发1004错误。
  • 粘贴范围超限:复制整行(共16384列)后从H列开始粘贴,所需列数会超出Excel最大列数(XFD列,对应第16384列),导致无法完成粘贴操作。

修复后的代码

Sub Example()
    Dim finalRowF As Long
    Dim targetRow As Long
    Dim sourceRange As Range
    
    ' 获取F列最后一行行号
    finalRowF = Cells(Rows.Count, "F").End(xlUp).Row
    targetRow = finalRowF + 1
    
    ' 定义A1所在行的有效数据区域(从A1到该行最后一个非空列)
    Set sourceRange = Range("A1", Cells(1, Columns.Count).End(xlToLeft))
    
    ' 复制到目标行的H列起始位置
    sourceRange.Copy Cells(targetRow, "H")
End Sub

关键修复点

  • 将finalRowF的类型从Integer改为Long,支持Excel的最大行数,避免溢出问题。
  • 复制A1所在行的有效数据区域而非整行,既满足需求,又不会超出工作表列数限制。

内容的提问来源于stack exchange,提问作者Francisco Augusto Varela Aguir

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 18:31:05