VBA对象定义的错误

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

我只包括相关的代码,因为我有很多variables,如果是和格式化代码。

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'; 导致#NAME? 在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 

任何帮助将大大appriciated。

小东西

好的,首先一些挑剔的。 我build议明确指定.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在您input的公式中发现错误”的含义相同。 消息,只有较less的帮助或描述性。

如果CommSeason包含任何双引号,则另一个麻烦来源可能是"