excel - 目标以目标为公式寻求宏观

标签 excel vba

我在这里捕获了救命稻草,所以任何帮助都会很棒(即,我不知道我在用 VBA 做什么)。

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

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

我想通过改变 M 来使 S3 的目标等于 L * G

所以,我已经放了

  • L * G 位于单元格 H32 中,
  • H18 中的 S3
  • G18 中的M
  • F18 中的S2

这是我迄今为止收集到的。

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

我收到“引用无效”错误,有什么想法吗? 谢谢!

最佳答案

如果 GoalSeek 单元格包含值而不是公式,或者如果 ChangeCell 包含公式而不是值或不包含任何内容,则 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 

代码是:

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

代码生成了(正确)答案 1.1038,即 G18 的值,H18 中的公式在该值处生成值 11,这是我正在寻求的目标。

关于excel - 目标以目标为公式寻求宏观,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18139322/

相关文章:

excel - 在 COUNTIFS 中使用 OR 和 AND

json - 网页抓取的内循环设计

excel - 将工作表传递给子例程

vba - 如何使用 VBA 从 Excel 数据集自动创建过滤列表?

Excel:使用 VBA 将条件格式应用于各个列中的空白单元格

excel - 在 Excel 中根据条件查找最大值或最小值

vba - 如何在VBA中保存工作表

Excel宏删除单元格模式

vba - Excel vba向单元格添加空格以达到一定长度

excel - Excel 2010 中 Application.ScreenUpdating 值的生命周期是多长?