簡體   English   中英

VBA忽略Excel Solver中參考單元格的約束

[英]VBA ignoring constraints of reference cell in Excel Solver

我正在Excel 2013中運行一個宏,該宏對30行的每一行(每行一個帳戶)使用規划求解。

  • B欄是我的帳戶名。
  • C列是“總成本”。
  • E列是低成本的雇員人數。
  • F列是中等成本的員工人數。
  • G列是高成本員工人數。
  • H列是“每位員工的低成本”。
  • 第一列是“每位員工的中等成本”。
  • J列是“每位員工的高成本”。
  • 列K是(E:G,H:J)的總積。
  • L列是C列和K列之間的差。在規划求解中,這是目標單元格,通過更改I和J列需要將其設置為0。

我有兩個約束:

  1. 我必須大於或等於J。
  2. H必須大於或等於I。

*請注意,H = C-sum(I,J),因此它不是自變量。

問題1.對於第一個約束:我的代碼中包含:

SolverAdd CellRef:=Range("I" & RowCount), _
        Relation:=3, _
        FormulaText:=Range("J" & RowCount)

*請注意,我嘗試使用谷歌搜索FormulaText,但似乎我發現的只是將其等同於一個值。 我不想要一個值。 我希望它引用一個單元格。 但是我一直忽略的代碼。 結果將顯示J大於I。如何解決這個問題?

問題2。我在運行時總是出錯

   SolverAdd CellRef:=Range("H" & RowCount), _
            Relation:=3, _
            FormulaText:=Range("I" & RowCount)

我不確定為什么會失敗。 是否因為H引用方程式而不是空白單元格? 如果是這樣,有什么解決辦法嗎?

謝謝。

您對此有進一步的了解嗎?

盡管我在H中有一個硬編碼的值,但這對我來說似乎還可以

SolverReset

SolverOk SetCell:="$L$3", MaxMinVal:=3, ValueOf:=0, ByChange:="$I$3:$J$3", _
    Engine:=1, EngineDesc:="GRG Nonlinear"

SolverAdd CellRef:="$H$3", Relation:=3, FormulaText:="$I$3"

SolverAdd CellRef:="$I$3", Relation:=3, FormulaText:="$J$3"

SolverSolve

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM