Excel VBAソルバーソリューションにいくつかの新しい制約を追加しようとしていますが、コードを実行すると奇妙な動作が発生します。最小化問題のために次のことをしたいのですが、問題があります。
調整される2つのレバーは、35%未満である必要がありますが、制約を追加すると、次のようになります。
SolverAdd CellRef:="$C$39", Relation:=2, FormulaText:=".35"
SolverAdd CellRef:="$C$40", Relation:=2, FormulaText:=".35"
これらを可能な限り低くするという考えの場合、自動的に35%に設定されます。この制約がないと、検証対象の問題に対してセルが35%未満に設定されるため、最適なソリューションは35%未満であることがわかります。
また、a)セルが5%単位で最適化され、終了値に小数が含まれていないことを確認する方法があるかどうか疑問に思いました。つまり、10.23%ではなく10.00%
長い質問をしてすみません、私は私が得るどんな助けにも感謝します。
完全なコードは次のとおりです。
Private Sub CommandButton2_Click()
Dim i As Integer
i = 2
For i = 2 To 5
Range("$C$14").Value = Application.Workbooks("test_model_2.xls").Worksheets("All Models").Cells(i, 2).Value
SolverReset
SolverAdd CellRef:="$F$70", Relation:=3, FormulaText:="5000"
SolverAdd CellRef:="$C$39", Relation:=2, FormulaText:=".35"
SolverAdd CellRef:="$C$40", Relation:=2, FormulaText:=".35"
SolverOk SetCell:="$F$70", MaxMinVal:=2, ValueOf:="0", ByChange:="$C$39:$C$40"
SolverSolve True
MsgBox "i is:" & i
Next i
End Sub