运行时错误:1004参考因目标搜索而无效

时间:2013-06-03 18:59:32

标签: excel vba excel-vba excel-2010 solver

首先,在运行代码之前,这是Excel图表:

enter image description here

运行代码后:

enter image description here

以下是相关代码:

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引用无效,以及工作表上的所有这些名称错误。有谁知道我怎么解决这个问题?我试图将残差的总和尽可能接近零,以便尽可能地适合我的数据。我这样做是通过使用目标搜索来改变,在F1中给出的De的值,以便最小化D15中给出的残差平方和。

我已经让这种方法在没有问题的情况下工作了,我不确定为什么它在这里失败了。任何建议都会很棒!

1 个答案:

答案 0 :(得分:3)

我不确定这是否解决了所有问题,但将功能线更改为以下内容:

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

SQRT代替SQR

附加提示,有时可能更好地命名对象属性,在您的情况下我建议在将函数插入范围时使用.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 & ")"

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