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

VBA导入Inv工作表N列数据到Rep工作表B列时出现运行时错误1004

VBA运行时错误1004解决方法

错误核心原因

你这段代码报错的关键是左右单元格区域的维度不匹配:

  • 右侧Inv.Range("N9:N" & 8 + fw2)是包含fw2+1行的纵向数据区域
  • 左侧.Range(.Cells(lastrow, "B"))只是单个单元格,直接给单个单元格赋值多行数据,会触发维度不兼容的1004错误。

修复后的代码

调整左侧区域范围,让它和右侧行数匹配,两种简洁写法任选:

写法1:用Resize扩展目标区域

With Rep
    ' 保留原有其他代码
    .Cells(lastrow, "B").Resize(fw2 + 1, 1).Value = Inv.Range("N9:N" & 8 + fw2).Value
End With

写法2:直接指定单元格范围

With Rep
    ' 保留原有其他代码
    .Range(.Cells(lastrow, "B"), .Cells(lastrow + fw2, "B")).Value = Inv.Range("N9:N" & 8 + fw2).Value
End With

额外注意事项

  • 确认lastrow变量已正确获取Rep工作表B列的最后有效行号,比如可以用lastrow = .Cells(.Rows.Count, "B").End(xlUp).Row来确保取值准确,避免赋值到无效位置。
  • 核对fw2的计算逻辑:fw2 = Me.ListBox1.ListCount - 1,当ListBox有n条数据时,fw2为n-1,对应8+fw2是N列的最后一行,行数刚好是fw2+1,和Resize参数匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 15:27:21