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

VBA中Range("4,X")触发1004错误,如何整合工作表函数实现赋值?

解决VBA中Range引用引发的1004应用程序错误

你在替换宏内的复制粘贴代码时,遇到了1004「应用程序定义或对象定义错误」,问题出在Sheets("Averages").Range("4, X").Value这行代码上,核心是Range对象的参数格式使用错误:

错误代码片段

Sub Daily()
    Dim X As Long
    X = WorksheetFunction.Lookup(range("Reported_day"), Worksheets("Averages").Rows("3:3"), Worksheets("Averages").Rows("2:2"))
    Sheets("Cost").Range("Tons").Value = Sheets("Averages").Range("4, X").Value
End Sub

问题原因

Range("4, X")的写法完全不符合VBA语法:

  1. Range的字符串参数必须是合法单元格地址(如"D4"),无法直接将行号与变量拼接在字符串中;
  2. 你实际要定位的是第4行第X列的单元格,这种按行号、列号定位的场景,应该使用Cells(行号, 列号)而非Range。

修正后的代码

直接将错误的Range引用替换为Cells即可,保留原Lookup逻辑:

Sub Daily()
    Dim X As Long
    ' 若"Reported_day"不在当前激活工作表,建议加上工作表限定(如Sheets("Cost").Range("Reported_day"))
    X = WorksheetFunction.Lookup(Range("Reported_day"), Worksheets("Averages").Rows("3:3"), Worksheets("Averages").Rows("2:2"))
    ' 用Cells(行, 列)准确定位目标单元格
    Sheets("Cost").Range("Tons").Value = Sheets("Averages").Cells(4, X).Value
End Sub

额外注意点

  • 旧代码中Worksheets("Avgerages")存在拼写错误(多了一个r),新代码里的Worksheets("Averages")是正确写法,需保持一致;
  • 无需使用数组解决该问题,仅为基础的单元格引用语法错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 06:37:09