Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA对象定义错误_Excel_Vba_Object - Fatal编程技术网

Excel VBA对象定义错误

Excel VBA对象定义错误,excel,vba,object,Excel,Vba,Object,根据代码的底线,我得到一个运行时错误“1004”。如果我“结束”并重新运行,问题就不会出现 我只包含了相关的代码,因为我有很多变量,if和格式化代码 Dim Yeild As String Sub NewPage() '... Yeild = "=INDEX(AcreGrid,MATCH(" & Chr(34) & Comm & Chr(34) & _ ",Prod!R3C1:R30C1,),MATCH(" &

根据代码的底线,我得到一个运行时错误“1004”。如果我“结束”并重新运行,问题就不会出现

我只包含了相关的代码,因为我有很多变量,if和格式化代码

Dim Yeild As String
Sub NewPage()
              '...
Yeild = "=INDEX(AcreGrid,MATCH(" & Chr(34) & Comm & Chr(34) & _
          ",Prod!R3C1:R30C1,),MATCH(" & Chr(34)  & Season & Chr(34) & _
          ",Prod!R3C1:R3C16,))/" & ActiveCell.Offset(0, 3)
              '... the above formula has been giving me the most problems
    ActiveCell.Offset(0, 3).Formula = "=Vlookup(B" & ActiveCell.Row & ", EQF,5,)" 'Factor
               '... I didn't define the above formula because it was causing problems
    ActiveCell.Offset(0, 7) = Yeild
               '...
 End Sub
我也尝试了以下方法,但单元格引用B4更改为“B4”;导致一个#名称?Excel中的错误

Yeild = "=INDEX(AcreGrid,MATCH(" & Chr(34) & Comm & Chr(34) & _
        ",Prod!R3C1:R30C1,),MATCH(" & Chr(34)  & Season & Chr(34) & _
        ",Prod!R3C1:R3C16,))/Vlookup(B" & ActiveCell.Row & ", EQF,5,)"
ActiveCell.Offset(0, 7) = Yeild
任何帮助都会非常感激。

小东西 好吧,首先要吹毛求疵。我建议明确指定
.Formula
.FormulaR1C1
,而不是像您在这一行中所做的那样将其隐含:

ActiveCell.Offset(0, 7) = Yeild
错误消息的可能来源 现在谈谈你的实际问题。在很多地方,下面的一行可能会出错并产生无效的公式

Yeild = "=INDEX(AcreGrid,MATCH(" & Chr(34) & Comm & Chr(34) & ",Prod!R3C1:R30C1,),MATCH(" & Chr(34) & Season & Chr(34) & ",Prod!R3C1:R3C16,))/" & ActiveCell.Offset(0, 3)
一个简单的例子,如果语句
ActiveCell.Offset(0,3)
的最后一部分返回空白或错误值,则最终得到的公式为零除,或错误:

=INDEX(AcreGrid,MATCH("",Prod!R3C1:R30C1,),MATCH("",Prod!R3C1:R3C16,))/
这不是一个有效的公式,因为末尾有尾随的除法
/
。因此,Excel会向您提供运行时错误1004,在本例中,这与“Microsoft Excel在您输入的公式中发现错误”消息的含义相同。该消息的帮助或说明性较小


如果
Comm
seasure
包含任何双引号,则可能是另一个问题源“

Dim Yeild作为字符串
移动到子模块中。我还会将
选项Explicit
放在模块顶部…谢谢,但运气不好。同样的问题。
Yeild
中的实际内容是什么?这可能不是你所想的。在您尝试将其分配到公式之前,请使用断点或
Debug.Print Yeild
查看实际存在的内容。谢谢,我已将其修复。我不得不改变变量定义和
activecell
引用的顺序。我还缺少
应用程序。计算