2

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
4

1 に答える 1

2

参照: http://msdn.microsoft.com/en-us/library/aa272233(v=office.10).aspx

「=」に相当する「relation:=2」を使用しています。1 (<=) を使用する必要があります

ソリューションを最も近い 0.05 にするために、「パーセント」セルにフィードする他のセルをいくつか設定し、それらを整数値に制限します。

例えば:

A1 = 7           (set solver to change this, and constrain to integer)
B1 = A1 * 0.05   (your percent cell, constrain to <=0.35)
于 2011-09-06T19:19:51.477 に答える