SolverFinish 函数
指示 Microsoft Office Excel 如何处理结果,以及要在解决方案过程完成时生成哪种报表。
注意 默认情况下未启用规划求解加载项。 在可以使用此函数之前,必须已安装且已启用规划求解加载项。 有关如何执行该操作的信息,请参阅使用规划求解 VBA 函数。 安装规划求解加载项之后,必须创建对该规划求解加载项的引用。 在 Visual Basic 编辑器中,如果模块处于活动状态,请单击“工具”菜单上的“引用”,然后在“可用的引用”下选择“规划求解”。 如果“规划求解”没有显示在“可使用的引用”下面,请单击“浏览”,然后打开 \Program Files\Microsoft Office\Office14\Library\SOLVER 子文件夹中的 Solver.xlam。
SolverFinish (KeepFinal、 ReportArray、 OutlineReports)
KeepFinal 是 Variant 类型的可选参数。 可取值为 1 或 2。 如果 KeepFinal 为 1 或省略,则最终解决方案值将保留在更改单元格中,以替换任何以前的值。 如果 KeepFinal 值为 2,最终解决方案值遭放弃,并还原原有值。 ReportArray 是 Variant 类型的可选参数。 Excel 在求解器完成时生成的报表种类:
当使用“单工 LP”或“GRG 非线性求解”方法时,1 会创建一个“解答”报告,2 会创建一个“敏感度”报告,3 会创建一个“限制”报告。
如果使用的是演进式求解方法,1 表示生成“答案”报表,2 表示生成“总体”报表。
当 SolverSolve 返回 5 (规划求解) 找不到可行的解决方案时,1 将创建可行性报告,2 将创建Feasibility-Bounds报表。
当 SolverSolve 返回 7 时(不满足线性条件),1 会创建“线性”报告。
使用 Array 函数可指定要显示的报告,例如,ReportArray:= Array(1,3)
。
OutlineReports 是 Variant 类型的可选参数。 可以为 True 或 False。 如果 OutlineReports 为 False 或省略,则报表以“常规”格式生成,而不使用大纲。 如果 OutlineReports 值为 True,生成的报表包含对应于你为决策变量和限制输入的单元格范围的大纲显示组。
示例
本示例加载先前计算过的规划求解模型(该模型存储于 Sheet1 中),并再次求解该模型,然后在新工作表上生成答案报告。
Worksheets("Sheet1").Activate
SolverLoad LoadArea:=Range("A33:A38")
SolverSolve UserFinish:=True
SolverFinish KeepFinal:=1, ReportArray:=Array(1)
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈