我正在使用Excel规划求解来最小化基于4个变量的成本。
关键是,求解器可以解决一个目标单元格的时间,但我需要这样做的250个项目的多个供应商。我试图总结所有的价格,但求解器是有限的200个变量,它需要永远执行它。
我的问题是:如何使用宏自动化求解器?
我的数据组织如下:
价格:A至D列数量限制:E列数量:F至I栏需求(取决于数量):J列总价(最小化):K列
我尝试为1个项目获取以下宏代码:
SolverOk SetCell:="$K$13", MaxMinVal:=2, ValueOf:=0, ByChange:="$F$13:$I$13", _
Engine:=2, EngineDesc:="Simplex LP"
SolverAdd CellRef:="$F$13:$I$13", Relation:=4, FormulaText:="integer"
SolverOk
SolverAdd CellRef:="$F$13:$I$13", Relation:=3, FormulaText:="0"
SolverOk
SolverAdd CellRef:="$J$13", Relation:=3, FormulaText:="$E$13"
SolverOk
SolverSolve
SolverOk
SolverDelete CellRef:="$F$13:$I$13", Relation:=4
SolverDelete CellRef:="$F$13:$I$13", Relation:=3, FormulaText:="0"
SolverDelete CellRef:="$J$13", Relation:=3, FormulaText:="$E$13"
End Sub
我需要你的帮助,自动从第7行到第257行的代码。
谢谢
David
2条答案
按热度按时间9rnv2umw1#
我认为你真正想问的问题是如何在vba中创建一个循环。对于初学者来说,“for循环”是最简单的。开始你的代码:
把你想重复的代码放在这里......你想改变的东西,引用“i”
例如,此行不会引用第13行,因为它在这里:求解器添加单元格引用:="$F$13:$I$13”,关系:=4,公式文本:=“整数”
而是指这里所示的第i行
以此类推。对你想改变的东西从头到尾都这样做。然后用这个结束你的循环:
如果有帮助就告诉我。
hgtggwj02#
这里ObjFn是excel上的一个命名范围,ByChanging是另一个命名范围。