使用命名单元格中的值作为目标值,使用VBA进行Goalseek

时间:2014-02-24 17:29:52

标签: vba

您好我正在尝试使用命名单元格中的值作为目标值在VBA中构建一个goalseek。我使用了以下源代码,但它不起作用。 你能帮我吗?

谢谢!

Worksheets("Assumptions & Results").Range("EIRRHybrid").GoalSeek Goal:=Worksheets("Assumptions & Results").Range("TargetEIRR").Value, ChangingCell:=Worksheets("Assumptions & Results").Range("Revenues_for_PV")

1 个答案:

答案 0 :(得分:1)

首先确保EIRRHybrid具有公式,直接或间接引用ChangingCell(命名范围Revenues_for_PV

其次,范围Revenues_for_PV应该是单个单元格。如果您的范围Revenues_for_PV包含多个单元格,则可以改为使用Solver,或使用.Range("Revenues_for_PV").Cells(1, 1)仅更改第一个单元格。

我还建议您使用With语句。它使您的代码更加清晰和快速:

With Worksheets("Assumptions & Results")
    .Range("EIRRHybrid").GoalSeek _
        Goal:=.Range("TargetEIRR").Value, _
        ChangingCell:=.Range("Revenues_for_PV").Cells(1,1)
End With