运行时错误:1004引用是由目标search导致的无效

首先,在运行代码之前,这里是有问题的Excel图表:

在这里输入图像说明

并运行代码后:

在这里输入图像说明

这是有问题的代码:

Option Explicit Dim Counter As Long Dim DeSimpleFinal As Double Sub SimpleDeCalculationNEW() Counter = 13 Range("C1") = "CFL Calculated" Range("D1") = "Residual Squared" Range("E1") = "De value" Range("F1") = 0.2 'Inserting Equations Range("C2") = "=((2 * $H$2)/ $H$1) * SQR(($F$1 * A2) / PI())" Range("C2").Select Selection.AutoFill Destination:=Range("C2:C" & Counter + 1), Type:=xlFillDefault Range("D2") = "=((ABS(B2-C2))^2)" Range("D2").Select Selection.AutoFill Destination:=Range("D2:D" & Counter + 1), Type:=xlFillDefault 'Summing up the residuals squared Range("D" & Counter + 2) = "=Sum(D2, D" & Counter + 1 & ")" Columns("A:Z").EntireColumn.EntireColumn.AutoFit 'Goal Seek Range("D" & Counter + 2).GoalSeek Goal:=0, ChangingCell:=Range("F1") DeSimpleFinal = Range("F1") 'Range("XFD1048523") = DeSimpleFinal MsgBox ("The Final Value for DeSimple is: " & DeSimpleFinal) End Sub 

我不断收到此错误,运行时错误:1004引用是无效的,工作表上的所有这些名称错误。 有人知道我可以解决这个问题吗? 我试图让残差的平方尽可能接近于零,以获得最好的适合我的数据。 我通过使用Goal Seek来实现这个function,这个function改变了De在F1中给出的值,以便最小化在D15中给出的残差平方和。

我已经使这种方法在没有问题的情况下工作了,而且我也不确定为什么它在这里失败。 任何build议将是惊人的!

我不确定这是否解决了所有问题,但是将您的function行更改为以下内容:

 Range("C2").Formula = "=((2 * $H$2)/ $H$1) * SQRT(($F$1 * A2) / PI())" 

SQRT而不是SQR

额外的提示,有时可能会更好地正确命名对象属性,在你的情况下,我会build议使用.Formula插入函数时,如:

 Range("C2").Formula = "=((2 * $H$2)/ $H$1) * SQRT(($F$1 * A2) / PI())" Range("D2").Formula = "=((ABS(B2-C2))^2)" Range("D" & Counter + 2).Formula = "=Sum(D2, D" & Counter + 1 & ")" 

我知道这通常是你的工作,但我的build议是一个好习惯,我坚持:)