2024年5月8日发(作者:)
Microsoft Excel Solver 的说明
Microsoft Excel Solver 是一个 Microsoft Excel 增益集。Microsoft Excel Solver 会帮助您决
定 Microsoft Excel 工作表上,特定目标储存格内之公式的最佳值。Microsoft Excel Solver 会使
用方程式,来调整与目标储存格相关之其他储存格的值。您建立好方程式,并定义方程式中之变量的
一组参数或条件约束之后,Microsoft Excel Solver 就会尝试各种解法,以得到满足所有条件约束
的答案。Microsoft Excel Solver 会使用下列元素来「解」方程式:
•
目标储存格 - 目标储存格是最终目的。它是工作表模型中要最小化、最大化或设定为特定
值的储存格。
•
变量储存格 - 变量储存格是做出判断的变量。这些储存格会影响目标储存格的值。
Microsoft Excel Solver 会变更这些储存格,以寻找目标储存格的最佳解法。
•
条件约束 - 条件约束是对储存格内容的限制。例如,工作表模型中某个储存格可能限制为
整数值,而另一个储存格可能限制为小于某个指定值。
您可以使用 Microsoft Visual Basic for Applications (VBA) 巨集,以自动执行 Microsoft Excel
Solver 模型的建立与操作。本文将告诉您如何使用 VBA 巨集语言,在 Microsoft Excel 97 中使
用 Microsoft Excel Solver 函数。本文假设您已熟悉 VBA 语言和 Microsoft Excel 97 的
Microsoft Visual Basic 编辑器。其中使用的范例可以从下列 Microsoft 网站下载:
/download/excel97win/solverex/1.0/WIN98Me/EN-US/
注意 本文中说明的巨集与范例,也可以在 Microsoft Excel 5.0 与 7.0 版中使用。
回此页最上方
如何在 VBA 巨集中使用 Microsoft Excel Solver 函数
若要在 VBA 巨集中使用 Microsoft Excel Solver 增益集函数,您必须从包含巨集之活页簿的
VBA 项目参照增益集。如果未参照 Microsoft Excel Solver 增益集,则在尝试执行巨集时,将会
收到下列编译错误:
Compile Error:Sub or Function not defined (编译错误:Sub 或 Function 未定义)。
若要在活页簿中参照巨集的 Microsoft Excel Solver 增益集,请依照下列步骤执行:
1. 开启活页簿。
2. 在 [工具] 功能表上,指向 [巨集],然后按一下 [Visual Basic 编辑器]。
3. 按一下 [工具] 功能表上的 [设定引用项目]。
4. 在 [可引用的项目] 清单中,按一下以选取 [] 核取方块,然后按一下 [确
定]。
注意 如果在 [可引用的项目] 清单中看不到 ,请按一下 [浏览]。在 [新增
引用项目] 对话方块中,找出并选取 档案,然后按一下 [开启]。
档案通常位于 C:Program FilesMicrosoft OfficeOfficeLibrarySolver 子资料
夹下。
您现在已经可以在 VBA 巨集中使用 Microsoft Excel Solver 函数。
回此页最上方
如何设计可建立并解决简单 Microsoft Excel Solver 模型的 VBA 巨集
虽然 Microsoft Excel Solver 提供许多函数,不过下列这三个函数是建立和解决模型的基础:
•
SolverOK 函数
•
SolverSolve 函数
•
SolverFinish 函数
SolverOK 函数
SolverOK 函数会定义基本的 Microsoft Excel Solver 模型。SolverOK 函数通常是建立
Microsoft Excel Solver 模型时,所使用的第一个函数。SolverOK 函数等于按一下 [工具] 功
能表上的 [规划求解],然后指定 [Solver Parameters] 对话方块中的选项。以下是 SolverOK
函数的语法:
SolverOK(SetCell, MaxMinVal, ValueOf, ByChange)
以下信息说明 SolverOK 函数的语法:
•
SetCell 指定目标储存格。
•
MaxMinVal 对应至您要将目标储存格解到最大值 (1)、最小值 (2) 或特定值 (3)。
•
ValueOf 指定目标储存格要符合的值。如果将 MaxMinVal 设定为 3,就必须指定这
个自变量。如果将 MaxMinVal 设定为 1 或 2,则可以省略这个自变量。
•
ByChange 指定要变更的一个储存格或某个范围内的储存格。
[图 1] 显示 SolverOK 函数的自变量与 [Solver Parameters] 对话方块中的参数之间的关
联性。
图 1. 与 SolverOK 自变量关联的参数
发布评论