【发布时间】:2018-01-22 22:08:43
【问题描述】:
我在 Excel VBA 宏中创建的 Solver 模型中的一个方程如下:
SolverAdd CellRef:="$M$18:$M$30", Relation:=2, FormulaText:="$N$18:$N$30"
我怎样才能实现它,以便行号“18”是一个可以作为另一个单元格的输入读取的值?例如,单元格 A1 的值可能是 18,这是我想在这个等式中使用的值。如果 A1 中的值为 10,则等式应为:
SolverAdd CellRef:="$M$10:$M$30", Relation:=2, FormulaText:="$N$10:$N$30"
同理,变量定义为:
SolverOk SetCell:="$H$47", MaxMinVal:=2, ValueOf:=0, ByChange:="$H$18:$J$30,$R$18:$R$30", _
Engine:=1, EngineDesc:="Simplex LP"
同样,当单元格 A1 中的数字值从 18 变为 10 时,
变量应从 "$H$18:$J$30,$R$18:$R$30" 更改为 "$H$10:$J$30,$R$10:$R$30"。
如果有任何建议,我将不胜感激。
非常感谢。
【问题讨论】:
-
您是否尝试过使用 Add-on SolverStudio?它真的很有用。但是,如果您想要一个变量作为输入,请使用:
input_variable = .Cells(1,1)或input_variable = Range("A1")并更改为"$M"&input_variable&":$M$30 -
太棒了!这行得通。谢谢丹尼尔。