Excel VBA教程:SolverAdd函数

向当前问题添加约束条件。相当于单击“工具”菜单中的“规划求解”命令,然后在“规划求解参数”对话框中单击“添加”按钮。

使用本函数之前,必须建立对规划求解加载宏的引用。当 Visual Basic 模块处于活动状态时,单击“工具”菜单中的“引用”命令,然后选中“可使用的引用”列表框中的“Solver.xla”复选框。如果“Solver.xla”未出现在“可使用的引用”列表框中,请单击“浏览”按钮并打开“\Office\Library”子文件夹中的“Solver.xla”。

SolverAdd(CellRef, Relation, FormulaText)

CellRef  Variant 类型,必需。对单元格或单元格区域的引用,该引用构成约束条件的左边部分。

Relation  Integer 类型,必需。约束条件左边和右边之间的算术关系。如果选择 4 或 5,那么 CellRef 必须引用可调整(可变)单元格,且不能指定 FormulaText参数。

Relation 算术关系
1 <=
2 =
3 >=
4 CellRef 所引用单元格的值必须为整数。
5 CellRef 所引用单元格的值必须为 0(零)或 1。

FormulaText   Variant 类型,可选。约束条件的右边部分。

说明

添加约束条件后,可用SolverChange函数和SolverDelete函数对其进行操作。

Excel VBA教程:SolverAdd函数·示例

本示例在商业问题中使用规划求解函数,以使总利润达到最大值。SolverAdd函数用于向当前问题添加三个约束条件。


Worksheets("Sheet1").Activate
SolverReset
SolverOptions precision:=0.001
SolverOK setCell:=Range("TotalProfit"), _
    maxMinVal:=1, _
    byChange:=Range("C4:E6")
SolverAdd cellRef:=Range("F4:F6"), _
    relation:=1, _
    formulaText:=100
SolverAdd cellRef:=Range("C4:E6"), _
    relation:=3, _
    formulaText:=0
SolverAdd cellRef:=Range("C4:E6"), _
    relation:=4
SolverSolve userFinish:=False
SolverSave saveArea:=Range("A33")

上页:Excel VBA教程:WorkbookPivotTableOpenConnection事件 下页:Excel VBA教程:SolverChange函数

Excel VBA教程:SolverAdd函数

Excel VBA教程:SolverChange函数 Excel VBA教程:SolverDelete函数
Excel VBA教程:SolverFinish函数 Excel VBA教程:SolverFinishDialog函数
Excel VBA教程:SolverGet函数 Excel VBA教程:SolverLoad函数
Excel VBA教程:SolverOk函数 Excel VBA教程:SolverOkDialog函数
Excel VBA教程:SolverOptions函数 Excel VBA教程:SolverReset函数
Excel VBA教程:SolverSave函数 Excel VBA教程:SolverSolve函数
Excel VBA教程:SQLBind函数 Excel VBA教程:SQLClose函数
Excel VBA教程:SQLError函数 Excel VBA教程:SQLExecQuery函数
Excel VBA教程:SQLGetSchema函数 Excel VBA教程:SQLOpen函数
Excel VBA教程:SQLRequest函数 Excel VBA教程:SQLRetrieve函数
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号