基于带有公式的单元格的单目标搜索



我正试图在多张表中使用目标搜索来更新项目的销售回报率%。所有单元格都有公式,有一个单元格是我们硬编码的,以便与原始的销售回报率%挂钩。

下面是我正在使用的代码,非常直接。

出于某种原因,当我运行这个宏时,它没有给我想要的销售回报率%的值

Sheets("DEV INFAS WLKDN").Select
Range("F30").Select
Application.CutCopyMode = False
Application.CutCopyMode = False
Range("F30").GoalSeek Goal:=-0.002, ChangingCell:=Range("F19")
Sheets("NBN WLKDN").Select
Range("F30").Select
Application.CutCopyMode = False
Application.CutCopyMode = False
Range("F30").GoalSeek Goal:=-0.0062, ChangingCell:=Range("F19")
Sheets("MSIL LASER WLKDN").Select
Range("F30").Select
Application.CutCopyMode = False
Application.CutCopyMode = False
Range("F30").GoalSeek Goal:=-0.004, ChangingCell:=Range("F19")

如果不知道你期望的是什么价值,它给了你什么,很难说你为什么会得到一个意想不到的答案。Excel中的目标查找函数基本上是一个迭代猜测函数,不能保证返回全局最优值。我没有任何文档支持这一说法,但我确信Excel中的目标搜索函数实现了二进制或黄金分割搜索。据我所知,Excel并没有具体说明他们在幕后使用的是什么,但这些搜索是合理的,研究它们的工作方式可能会揭示你的问题。

此外,看起来你的代码长度可以减少到

With ThisWorkbook
.Sheets("DEV INFAS WLKDN").Range("F30").GoalSeek Goal:=-0.002, ChangingCell:=Range("F19")
.Sheets("NBN WLKDN").Range("F30").GoalSeek Goal:=-0.0062, ChangingCell:=Range("F19")
.Sheets("MSIL LASER WLKDN").Range("F30").GoalSeek Goal:=-0.004, ChangingCell:=Range("F19")
End With

通常CCD_ 1是不必要的并且不推荐使用。

最新更新