目标寻求宏与目标作为一个公式

Nat*_*lie 2 excel vba excel-vba

我在这里抓住稻草,所以任何帮助都会很棒(也就是说,我不知道我在用VBA做什么).

我试图通过创建目标搜索宏来解决Excel中的循环引用问题 - 基本上

  1. S3 = M + S2,
  2. S3 = L * G.

我想L * G通过改变目标来寻求S3等于

所以,我已经把

  • L * G在细胞中H32,
  • S3H18,
  • MG18,
  • S2F18

这是我到目前为止收集的内容.

Sub GoalSeek()   
Dim x As Integer
x = Range("H32").Value    
Range("H18").GoalSeek Goal:=x, ChangingCell:=Range("G18")     
End Sub
Run Code Online (Sandbox Code Playgroud)

我收到了"参考无效"的错误,想法?谢谢!

chu*_*uff 5

如果GoalSeek单元格包含值而不是公式,或者如果ChangingCell包含公式而不是值或什么都不包含,则GoalSeek将抛出"无效引用"错误.

GoalSeek单元格必须包含直接或间接引用ChangingCell的公式; 如果公式没有以某种方式引用ChangingCell,则GoalSeek可能不会收敛到答案或者可能产生无意义的答案.

我使用与您不同的GoalSeek公式测试了您的代码(我不太清楚某些术语是指单元格还是值).

为了测试,我设置:

  the GoalSeek cell  H18 = (G18^3)+(3*G18^2)+6
  the Goal cell      H32 =  11
  the ChangingCell   G18 =  0 
Run Code Online (Sandbox Code Playgroud)

代码是:

Sub GSeek()
    With Worksheets("Sheet1")
        .Range("H18").GoalSeek _
        Goal:=.Range("H32").Value, _
        ChangingCell:=.Range("G18")
    End With
End Sub
Run Code Online (Sandbox Code Playgroud)

并且代码产生了1.1038的(正确)答案,即G18的值,其中H18中的公式产生值11,这是我寻求的目标.