-1
ソルバー関数を使用してソルバーを50回実行するサブがあります。しかし、私はソルバーの結果をコピーし、それぞれの実行後に貼り付けようとしています。たとえば、[最適化]タブでセル範囲E1:O13がソルバーの結果を表示していますが、実行するたびに同じセクションに上書きされます。私はソルバーの最初の実行のための範囲セルA1:K13と言うセルA1から始まる別のワークシート呼び出し "SolverResults"にセル範囲E1:E13をコピーして、コピーしてソルバーの2番目の実行をセルA16に貼り付けます: K28、そうである。 コピーと貼り付けの部分については、ループを使用する方法がわからないので、現在SolverResultsタブに、A1:K13のデータの1つのセクションのみが表示されます。これは、Solverが50回実行され、F1 = 221。各回の実行後のソルバー結果のコピーと貼り付け
ループを使用して結果セクションをセクションごとにコピーして貼り付ける方法を知っている人は誰でも知っていますか?私はVBAにはかなり新しいので、どんな提案も感謝しています!
{Sub RRS()
For i = 0 To 50 Step 1
SolverReset
Range("F1") = 271 - i
SolverOk SetCell:="$L$13", MaxMinVal:=3, ValueOf:=0.01, ByChange:="$F$4:$F$12" _
, Engine:=1, EngineDesc:="GRG Nonlinear"
SolverOptions MaxTime:=0, Iterations:=0, Precision:=0.001, Convergence:=0.0001 _
, StepThru:=False, Scaling:=False, AssumeNonNeg:=True, Derivatives:=2
SolverAdd CellRef:="$F$4:$F$12", Relation:=1, FormulaText:="$I$4:$I$12"
SolverAdd CellRef:="$F$4:$F$12", Relation:=3, FormulaText:="$H$4:$H$12"
SolverAdd CellRef:="$F$13", Relation:=2, FormulaText:="1"
SolverSolve (True)
SolverFinish KeepFinal:=1
Worksheets("Optimization").Range("E1:O13").Copy Destination:=Worksheets("SolverResults").Range("A1")
Next i
End Sub
}
で
をそんなにスコットありがとうございます!このコードでは、結果セクションをセクションごとにコピー&ペーストするようになりました。これは素晴らしいことです! Optimization SheetからSolverResultsシートまでの範囲E1:E13の式をコピーして貼り付けることがコードで分かっていますが、E1:E13から値をコピーして各コードの後にSolverResultsに単純にコピーすることはできますか?ソルバーの実行? – jcmachine
@jcmachine - 編集を試してください。ちょうど良いものになるようにサイズ変更引数を調整する必要があるかもしれません。 –
ありがとうScott!私は今それを試しています:-)あなたの助けは非常に高く評価されています:-) – jcmachine