簡體   English   中英

Excel 求解器 VBA

[英]Excel Solver VBA

我在 Excel VBA 宏中創建的求解器模型中的方程之一如下:

SolverAdd CellRef:="$M$18:$M$30", Relation:=2, FormulaText:="$N$18:$N$30"

我怎樣才能實現它,以便行號“18”是一個可以作為另一個單元格的輸入讀取的值? 例如,單元格 A1 的值可能為 18,這正是我想在此等式中使用的值。 如果 A1 中的值為 10,則等式應為:

SolverAdd CellRef:="$M$10:$M$30", Relation:=2, FormulaText:="$N$10:$N$30"

同樣,變量定義為:

SolverOk SetCell:="$H$47", MaxMinVal:=2, ValueOf:=0, ByChange:="$H$18:$J$30,$R$18:$R$30", _
    Engine:=1, EngineDesc:="Simplex LP"

同樣,當單元格 A1 中的數字值從 18 變為 10 時,變量應從"$H$18:$J$30,$R$18:$R$30"變為"$H$10:$J$30,$R$10:$R$30"

我將不勝感激任何建議。

非常感謝。

  • 要將變量作為輸入,請使用: input_variable = .Cells(1,1)input_variable = Range("A1")並更改為"$M"&input_variable&":$M$30

有關更多方法,請參閱此問題: VBA: Selecting range by variables or Range as a Variable VBA

  • 另一種選擇是使用SolverStudio ,它非常有用,因為您可以使用幾乎所有著名的優化庫在 Excel 中建模。

隨着問題的增多,Excel似乎無法解決一些問題,還有很多其他專業軟件使用這些優化建模語言。

如果您嘗試安裝可能會出現一些問題,請輸入此鏈接來解決:幫助頁面我的問題是不同的,在這里解決

在我的課程中,我使用的是 AMPL,因此使用 SolverStudio 進行編程比 Excel VBA 更容易,因為 SolverStudio 的語言專注於優化問題。

暫無
暫無

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

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