我正在尝试在一系列单元格上自动执行 GoalSeek 函数。I 列和 J 列中的每个单元格使用两种不同的方法计算感兴趣的数量,并且结果必须一致。
K 列中的每个单元格都是 I 列和 J 列中相应单元格之间的差值。F 列中的每个单元格包含参数的值,当 GoalSeek 收敛时,该参数将 K 驱动为零(即 I = J)。这是我使用的代码:
Sub TargetTemp()
Do Until Range("K26:K119") = 0
Range("J26:J119").GoalSeek Goal:=Range("I26:I119"), ChangingCell:=Range("F26:F119")
Loop
End Sub
当我运行它时,我收到类型不匹配错误 13,不知道为什么。有人能帮忙吗?
答案1
您应该GoalSeek
对单个单元格使用,而不是一次对整个范围使用。您可以通过更改Application.MaxChange
与数据相关的属性来控制计算的准确性。默认值是0.001
。如下所示:
Sub TargetTemp()
Dim i As Long
Application.MaxChange = 0.0001
For i = 1 To Range("J26:J119").Count
Range("J26:J119")(i).GoalSeek Goal:=Range("I26:I119")(i), _
ChangingCell:=Range("F26:F119")(i)
Next i
End Sub