如何设置求解器的价值:'细胞参考

时间:2017-09-25 13:13:55

标签: excel excel-vba vba

我正在开展一个项目,我必须根据具体数字计算最终价格,每件商品的价格会变为等于最终价格(参见下面的示例图片)。

enter image description here

然而,我很好奇是否有任何可能的方法来运行多行(如公式)的求解器,其值为' number是单元格引用而不是静态数字。

这可能吗?如果需要更多信息,请告诉我。

2 个答案:

答案 0 :(得分:1)

录制宏并查看生成的代码。 然后它会有这样的内容:

SolverOk SetCell:="$D$3", MaxMinVal:=3, ValueOf:=Y.Value, ByChange:="$D$2"

尝试将ValueOf=:更改为Range("F2")并再次运行。

答案 1 :(得分:0)

在录制宏并使用该代码后(另请参阅 Vityata's answer),将 ValueOf 元素替换为您在代码中显式设置/更新的宏变量

[... your thing that changes the value in Cell `$I$1` ...]

mytarget = Range("$I$1")

SolverOk SetCell:="$D$3", MaxMinVal:=3, ValueOf:=mytarget, ByChange:="$D$2"

必须显式设置这个临时变量 mytarget;在 ValueOf:=Range("$I$1") 命令中直接分配 SolverOk 会产生(遗憾的​​是无法理解的)错误消息。

行为的暂定解释(推测):求解器期望目标值是一个固定常数,即在求解过程中保持不变,但如果您仅引用一个单元格范围,求解器无法自动知道你的价值确实保持不变。