SolverSave 函数

保存工作表中的规划求解问题说明。

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

SolverSave ( SaveArea)

SaveArea 必需 变量。 如果该单元格区域是单个单元格区域,则规划求解将根据需要使用任意数量的单元格将模型保存在以指定单元格开始的列中。 如果该单元格区域是多单元格区域,则规划求解仅使用该区域中的单元格,即使无法完整地保存模型也是如此。 如果这是多单元格区域,规划求解仅使用该范围内的单元格,即使无法完全保存模型, SaveArea 参数表示的区域可以位于任何工作表上,但如果它不是活动工作表,则必须指定工作表。 例如, SolverSave("Sheet2!A1:A3") 即使 Sheet2 不是活动工作表,也会在 Sheet2 上保存模型。

示例

本示例使用规划求解函数来最大化业务问题的毛利润。 SolverSave 函数将当前问题保存到活动工作表上的某一区域。

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 支持和反馈,获取有关如何接收支持和提供反馈的指南。