簡體   English   中英

求解器故障? excel VBA

[英]Solver Glitch? Excel VBA

我正在使用求解器處理優化問題,每次打開求解器參數時,它都會添加我自己沒有添加的其他約束。

例如。 我輸入了三個要用於解決此問題的約束。

$H$14 <= $H$13
$K$14 <= $K$13
$N$14 <= $N$13

當我保存它並關閉求解器並運行它時,它運行良好。 然后,當我通過單擊 Excel 中數據選項卡下的求解器按鈕重新打開求解器參數以查看現有約束時,有 20 多個沒有意義的約束添加到約束中。 這些添加的約束會使求解器的答案錯誤。

每次打開求解器時,附加約束都會發生變化。 以下是其中一些的示例。

$K$14 <= $R$33
$K$14 <= $R$33
$K$14 <= $R$33
$K$14 <= $R$33
$K$14 <= $R$33
$H$14 <= $O$33
$H$14 <= $O$33
$H$14 <= $O$33
$H$14 <= $O$33
$P$21 <= $W$40
$P$21 <= $W$40
$P$21 <= $W$40
$P$21 <= $W$40

它為每個添加的約束添加了多次重復,並且所有這些單元格都是空的,因此它完全破壞了我的求解器解決方案。 我正在為一個項目開發這個程序,每次我的教授打開約束來觀察我所做的事情時,我都需要它不要搞砸。 我曾嘗試在不同的計算機上打開該文件,但它做同樣的事情。 有沒有其他人遇到過這種情況? 我是否做錯了什么導致這些額外的限制? 任何幫助表示贊賞。 如果有人想自己看一下,我可以發送文件。

謝謝!

不確定它是否有幫助,但值得一試......

我的求解器有類似的問題(它記住了我以前的設置和約束)。 您會注意到 Excel 通過將它們保存為隱藏名稱來記住您的規划求解設置(方案)。 首先,您需要運行 VBA 代碼來取消隱藏所有名稱:

Sub UnhideNames()
    Dim nme As Excel.Name

    For Each nme In Excel.Names
        nme.Visible = True
    Next nme
End Sub

運行后,返回到公式>“名稱管理器”,您應該會注意到一組特定於求解器的范圍,您可以手動刪除這些范圍。 希望這將解決您的問題...手指交叉!

暫無
暫無

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

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