我正在开展一个项目,我必须根据具体数字计算最终价格,每件商品的价格会变为等于最终价格(参见下面的示例图片)。
然而,我很好奇是否有任何可能的方法来运行多行(如公式)的求解器,其值为' number是单元格引用而不是静态数字。
这可能吗?如果需要更多信息,请告诉我。
答案 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
会产生(遗憾的是无法理解的)错误消息。
行为的暂定解释(推测):求解器期望目标值是一个固定常数,即在求解过程中保持不变,但如果您仅引用一个单元格范围,求解器无法自动知道你的价值确实保持不变。