Microsoft_Excel_Solver_的说明

上传人:野鹰 文档编号:3098440 上传时间:2017-07-30 格式:DOCX 页数:21 大小:85.41KB
返回 下载 相关 举报
Microsoft_Excel_Solver_的说明_第1页
第1页 / 共21页
Microsoft_Excel_Solver_的说明_第2页
第2页 / 共21页
Microsoft_Excel_Solver_的说明_第3页
第3页 / 共21页
Microsoft_Excel_Solver_的说明_第4页
第4页 / 共21页
Microsoft_Excel_Solver_的说明_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《Microsoft_Excel_Solver_的说明》由会员分享,可在线阅读,更多相关《Microsoft_Excel_Solver_的说明(21页珍藏版)》请在金锄头文库上搜索。

1、Microsoft Excel Solver 的说明Microsoft Excel Solver 是一个 Microsoft Excel 增益集。Microsoft Excel Solver 会帮助您决定 Microsoft Excel 工作表上,特定目标储存格内之公式的最佳值。Microsoft Excel Solver 会使用方程式,来调整与目标储存格相关之其他储存格的值。您建立好方程式,并定义方程式中之变量的一组参数或条件约束之后,Microsoft Excel Solver 就会尝试各种解法,以得到满足所有条件约束的答案。Microsoft Excel Solver 会使用下列元素来解

2、 方程式: 目标储存格 - 目标储存格是最终目的。它是工作表模型中要最小化、最大化或设定为特定值的储存格。 变量储存格 - 变量储存格是做出判断的变量。这些储存格会影响目标储存格的值。Microsoft Excel Solver 会变更这些储存格,以寻找目标储存格的最佳解法。 条件约束 - 条件约束是对储存格内容的限制。例如,工作表模型中某个储存格可能限制为整数值,而另一个储存格可能限制为小于某个指定值。您可以使用 Microsoft Visual Basic for Applications (VBA) 巨集,以自动执行 Microsoft Excel Solver 模型的建立与操作。本文将

3、告诉您如何使用 VBA 巨集语言,在 Microsoft Excel 97 中使用 Microsoft Excel Solver 函数。本文假设您已熟悉 VBA 语言和 Microsoft Excel 97 的 Microsoft Visual Basic 编辑器。其中使用的范例可以从下列 Microsoft 网站下载: http:/ 本文中说明的巨集与范例,也可以在 Microsoft Excel 5.0 与 7.0 版中使用。回此页最上方如何在 VBA 巨集中使用 Microsoft Excel Solver 函数若要在 VBA 巨集中使用 Microsoft Excel Solver 增

4、益集函数,您必须从包含巨集之活页簿的 VBA 项目参照增益集。如果未参照 Microsoft Excel Solver 增益集,则在尝试执行巨集时,将会收到下列编译错误: Compile Error:Sub or Function not defined (编译错误:Sub 或 Function 未定义)。若要在活页簿中参照巨集的 Microsoft Excel Solver 增益集,请依照下列步骤执行: 1. 开启活页簿。 2. 在 工具 功能表上,指向 巨集,然后按一下 Visual Basic 编辑器。 3. 按一下 工具 功能表上的 设定引用项目。 4. 在 可引用的项目 清单中,按一

5、下以选取 Solver.xls 核取方块,然后按一下 确定 。注意 如果在 可引用的项目 清单中看不到 Solver.xls,请按一下 浏览 。在 新增引用项目 对话方块中,找出并选取 Solver.xla 档案,然后按一下 开启。Solver.xla 档案通常位于 C:Program FilesMicrosoft OfficeOfficeLibrarySolver 子资料夹下。您现在已经可以在 VBA 巨集中使用 Microsoft Excel Solver 函数。回此页最上方如何设计可建立并解决简单 Microsoft Excel Solver 模型的 VBA 巨集虽然 Microsoft

6、 Excel Solver 提供许多函数,不过下列这三个函数是建立和解决模型的基础: SolverOK 函数 SolverSolve 函数 SolverFinish 函数SolverOK 函数 SolverOK 函数会定义基本的 Microsoft Excel Solver 模型。 SolverOK 函数通常是建立 Microsoft Excel Solver 模型时,所使用的第一个函数。 SolverOK 函数等于按一下 工具 功能表上的 规划求解 ,然后指定 Solver Parameters 对话方块中的选项。以下是 SolverOK 函数的语法: SolverOK(SetCell, M

7、axMinVal, ValueOf, ByChange)以下信息说明 SolverOK 函数的语法: SetCell 指定目标储存格。 MaxMinVal 对应至您要将目标储存格解到最大值 (1)、最小值 (2) 或特定值 (3)。 ValueOf 指定目标储存格要符合的值。如果将 MaxMinVal 设定为 3,就必须指定这个自变量。如果将 MaxMinVal 设定为 1 或 2,则可以省略这个自变量。 ByChange 指定要变更的一个储存格或某个范围内的储存格。图 1 显示 SolverOK 函数的自变量与 Solver Parameters 对话方块中的参数之间的关联性。 图 1. 与

8、 SolverOK 自变量关联的参数SolverSolve 函数SolverSolve 函数会使用您以 SolverOK 函数指定的参数来解决模型。执行 SolverSolve 函数等于按一下 Solver Parameters 对话方块中的 解决。以下是 SolverSolve 函数的语法: SolverSolve(UserFinish, ShowRef) 下列信息说明 SolverSolve 函数的语法: UserFinish 指出您是否要使用者完成解决模型。若要传回结果但不显示 Solver Results 对话方块,请将这个自变量设定为 TRUE。若要传回结果并显示 Solver Re

9、sults 对话方块,请将这个自变量设定为 FALSE ShowRef 识别 Microsoft Excel Solver 传回中继解法时呼叫的巨集。唯有传递 TRUE 到 SolverOptions 函数的 StepThru 自变量时,才应该使用 ShowRef 自变量。SolverFinish 函数SolverFinish 函数指示要对结果采取什么动作,以及解法程序完成之后要建立的报告种类。以下是 SolverFinish 函数的语法: SolverFinish (KeepFinal, ReportArray) 下列信息说明 SolverFinish 函数的语法: KeepFinal 指示

10、要如何处理最终结果。如果 KeepFinal 是 1,最终解答值会保留在变量储存格中,取代其中的值。如果 KeepFinal 是 2,则会舍弃最终解答值,并还原先前的值。 ReportArray 指定一个阵列,阵列指示得到解答时 Microsoft Excel 会建立的报告类型。如果 ReportArray 设定为 1,Microsoft Excel 会建立答案报告。如果设定为 2,Microsoft Excel 会建立敏感度报告,若设定为 3,Microsoft Excel 会建立限制报告。如需这些报告的详细信息,请参阅如何产生解法的报告一节。图 2. 与 SolverFinish 自变量关

11、联的 Microsoft Excel Solver 结果选项本文说明如何互动地建立简单的 Microsoft Excel Solver 模型。第一步是建立模型的工作表。工作表会包含一些资料储存格,而至少有一个储存格会包含公式。这个公式会依赖工作表中其他的储存格。设定好工作表之后,按一下 工具 功能表上的 规划求解。在 Solver Parameters 对话方块中指定目标储存格、您要解答的值、将要变更之储存格的范围,以及条件约束。按一下 解决 开始解答程序。 Microsoft Excel Solver 找到解答之后,会在您的工作表中显示结果,而且 Microsoft Excel Solver

12、 会显示一个讯息方块,提示您决定要保留最终结果,或者要舍弃结果。您按一下其中一个选项之后,Microsoft Excel Solver 即告完成。图 3 说明可以使用这些步骤建立的简单模型。图 3. 简单模型:平方根模型展开此图像在这个范例中,将包含公式 =A12 的储存格 A1 变更为一个值,这个值会让储存格 A2 的值等于 50。也就是寻找 50 的平方根。平方根模型中没有条件约束。Find_Square_Root 巨集会完成下列工作: 设定一个模型,这个模型会变更储存格 A1 的值,求出会使 A2 的值等于 50 的值。 它会解决模型。 将最终结果储存到工作表,不显示 Solver Re

13、sults 对话方块。这个简单的巨集会建立 Microsoft Excel Solver 模型,而且不需使用者介入就能解决模型。下列程序码说明 Find_Square_Root 巨集: Sub Find_Square_Root() Set up the parameters for the model. Set the target cell A2 to a value of 50 by changing cell A1.SolverOK SetCell:=Range(A2), MaxMinVal:=3, ValueOf:=50, _ByChange:=Range(A1) Solve the

14、model but do not display the Solver Results dialog box. SolverSolve UserFinish:=True Finish and keep the final results.SolverFinish KeepFinal:=1End SubFind_Square_Root2 巨集是 Find_Square_Root 巨集的修改版本。如果使用 InputBox 函数,Find_Square_Root2 巨集会提示您输入想要为目标储存格解决的值。您输入值之后,Find_Square_Root2 巨集会将这个参数设定为 SolverOKv

15、alueof 自变量的值,解决问题,将结果储存在变量平方根中,然后舍弃解答并将工作表中的值还原为原始状态。Find_Square_Root2 巨集基本上说明您可以如何将结果储存在一个或多个变量中,然后将变量储存格还原为原始值。 下列程序码说明 Find_Square_Root2 巨集: Sub Find_Square_Root2()Dim valDim sqroot Request the value for which you want to obtain the square root.val = Application.InputBox( _prompt:=Please enter the value for which you want & _to find the square root:, Type:=1) Set up the parameters for the model. SolverOK SetCell:=Range(A2), MaxMinVal:=3, ValueOf:=val, _ByChange:=Range(A1) Do not display the Solver Results dialog box.SolverSolve Us

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号