SolverOk 函数

定义基本求解器模型。 等效于单击“数据分析 | ”组中的“规划求解”,然后在“规划求解参数”对话框中指定选项。

注意

规划求解加载项默认处于禁用状态。 在可以使用此函数之前,必须已安装且已启用规划求解加载项。 有关如何执行该操作的信息,请参阅使用规划求解 VBA 函数。 安装规划求解加载项之后,必须创建对该规划求解加载项的引用。 在 Visual Basic 编辑器中,如果模块处于活动状态,请单击“工具”菜单上的“引用”,然后在“可用的引用”下选择“规划求解”。 如果“规划求解”没有显示在“可使用的引用”下面,请单击“浏览”,然后打开 \Program Files\Microsoft Office\Office14\Library\SOLVER 子文件夹中的 Solver.xlam。

SolverOk ( SetCellMaxMinValValueOfByChangeEngineEngineDesc)

SetCellVariant 类型的可选参数。 引用活动工作表中的一个单元格。 对应于“规划求解参数”对话框中的“设置目标单元格”框。 MaxMinValVariant 类型的可选参数。 对应于“规划求解参数”对话框中的“最大值”、“最小值”和“”选项。

MaxMinVal 指定
1 最大
2 最小化
3 匹配特定值

ValueOfVariant 类型的可选参数。 如果 MaxMinVal 为 3,则必须指定目标单元格所匹配的值。

ByChangeVariant 类型的可选参数。 要更改的单元格或单元格区域,以便在目标单元格中获取所需结果。 对应于“规划求解参数”对话框中的“通过更改单元格”框。

EngineVariant 类型的可选参数。 应用来求解问题的求解方法:2 表示单纯形 LP 方法,1 表示 GRG 非线性方法,或 3 表示演进式方法。 对应于“规划求解参数”对话框中的“选择求解方法”下拉列表。

EngineDescVariant 类型的可选参数。 另一种以字符串形式指定应用来求解问题的求解方法的方式:“单纯形 LP”、“GRG 非线性”或“演进式”。 对应于“规划求解参数”对话框中的“选择求解方法”下拉列表。

示例

本示例使用规划求解函数来最大化业务问题的毛利润。 SolverOK 函数通过指定 SetCellMaxMinValByChange 参数来定义问题。

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")

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。