0

マクロの実行ごとにソルバーを設定しようとしていますが、何らかの理由ですべての制約を無視しているようですが、すべての制約を無視しているようです。

SolverReset
SolverOk SetCell:="$N$15", MaxMinVal:=3, ValueOf:=0, ByChange:=Range("i3", Range("i3").End(xlDown)), _
Engine:=3, EngineDesc:="Evolutionary"
SolverAdd CellRef:=Range("k3", Range("k3").End(xlDown)), Relation:=1, FormulaText:="1"
SolverAdd CellRef:="$P$12:$P$13", Relation:=1, FormulaText:="$R$12:$R$13"
SolverAdd CellRef:="$P$12:$P$13", Relation:=3, FormulaText:="$N$12:$N$13"
SolverAdd CellRef:=Range("n3", Range("n3").End(xlDown)), Relation:=2, FormulaText:="1"
SolverAdd CellRef:=Range("i3", Range("i3").End(xlDown)), Relation:=5, FormulaText:="binary"
SolverSolve

Range( "n3"、Range( "n3")。End(xlDown))およびRange( "k3"、Range( "k3")。End(xlDown))の制約を無視するだけです。

どんな助けでもいただければ幸いです。

ありがとう!

4

2 に答える 2

1

XL ヘルプから:

「関係が必要な整数。制約の左側と右側の間の算術関係。4 または 5を選択した場合、CellRef は調整可能な (変化する) セルを参照する必要があり、FormulaText は指定しないでください。」

最後の範囲には relationship=5 があるため、FormulaText を含めることはできません。

于 2011-08-26T23:53:49.443 に答える
0

私は同じ問題を抱えており、relation=5 の範囲の FormulaText は問題ではありませんでしたが、問題は FormulaText="1" でした。FormulaText="1" を持つすべての SolverAdd がソルバーで無視されました。私にとっての解決策は、1 つのセル (E9 など) に「1」を追加し、FormulaText="$E$9" を設定することでした。おそらくもっと良い解決策がありますが、これは私にとっては問題ありませんでした...

于 2014-07-11T22:32:25.177 に答える