SolverOk 函數
定義基本的規劃求解模式。 相當於按一下[資料 | 分析] 群組中的 [規劃求解],然後在 [規劃求解參數] 對話方塊中指定選項。
注意事項
根據預設,規劃求解增益集並未啟用。 使用本函數之前,必須先安裝並啟用規劃求解增益集。 如需如何安裝並啟用規劃求解增益集的詳細資訊,請參閱使用規劃求解 VBA 函數。 安裝規劃求解增益集之後,必須建立對規劃求解增益集的參照。 在模組作用中的 Visual Basic 編輯器中,按一下 [工具] 功能表上的 [參照],然後選取 [可用參照] 下的 [規劃求解]。 如果 [規劃求解] 沒有出現在 [可用的參考] 底下,按一下 [瀏覽],然後開啟 \Program Files\Microsoft Office\Office14\Library\SOLVER 子資料夾中的 Solver.xlam。
SolverOk ( SetCell、MaxMinVal、ValueOf、ByChange、Engine、EngineDesc)
SetCell 選擇性的 Variant。 是指使用中工作表上的單一儲存格。 對應至 [規劃求解參數] 對話方塊中的 [設定目標資料格] 方塊。 MaxMinVal 選擇性的 Variant。 對應至 [規劃求解參數] 對話方塊中的[最大值]、[最小值] 和 [值] 選項。
MaxMinVal | 指定 |
---|---|
1 | Maximize |
2 | 最小化 |
3 | 符合特定值 |
ValueOf 選擇性的 Variant。 如果 MaxMinVal 為 3,您必須指定與目標儲存格相符的值。
ByChange 選擇性的 Variant。 要變更的儲存格或儲存格範圍,以便您在目標儲存格中取得所需的結果。 對應至 [規劃求解參數] 對話方塊中的 [變更儲存格] 方塊。
發動機 選擇性的 Variant。 應該用來解決問題的解決方法:2 表示 Simplex LP 方法,1 用於 GRG 非線性方法,3 用於 Evolutionary 方法。 對應至 [規劃求解參數] 對話方塊中的 [選取解決方法] 下拉式清單。
EngineDesc 選擇性的 Variant。 指定解決方法的替代方式,該方法應該用來以字串方式解決問題:「Simplex LP」、「GRG Nonlinear」 或 「Evolutionary」。 對應至 [規劃求解參數] 對話方塊中的 [選取解決方法] 下拉式清單。
範例
此範例將在商務問題中使用 [規劃求解] 函數,以使總利潤達到最大值。 SolverOK函式會藉由指定SetCell、MaxMinVal和ByChange引數來定義問題。
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 支援與意見反應。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應