0

我收到基于代码底线的运行时错误“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”;导致#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

任何帮助将不胜感激。

4

1 回答 1

2

小东西

好吧,首先要吹毛求疵。我建议明确并分配给.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 在您输入的公式中发现错误”的含义相同。消息,只是不太有用或描述性较差。

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

于 2013-08-29T17:07:40.267 回答