私は二次最適化のためのマクロを書こうとしています。私は非常に限られたVBAのスキルを持っているが、私は手動でソルバーを使用してマクロを記録し、私のコードは、現在、次のようになります。セル参照、隣接する列を変更するソルバーループを設定する
Sub Macro2()
'
' Macro2 Macro
'
'
SolverReset
SolverAdd CellRef:="$C$179:$C$185", Relation:=3, FormulaText:="0"
SolverAdd CellRef:="$C$186", Relation:=2, FormulaText:="1"
SolverOk SetCell:="$C$174", MaxMinVal:=2, ValueOf:=0, ByChange:="$C$179:$C$185" _
, Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve UserFinish:=True
SolverFinish KeepFinal:=1
End Sub
私は何をしようとしていますが、ソルバのループを作るです次回ようにC列セルの参照とターゲットセルがDに変わりますが、それ以外のものはそのままです。私はCからVへの20の隣接する列のためにこれをしたいと思います。どんな助けも大いに評価されるでしょう!
こんにちは@orkanoidを、あなたがそうDO-しようとしているものを解読ハード少し時間を持つあなたが言うとき:「そう次にセルのC列が参照され、ターゲットセルがDに変更されると、それ以外のものはすべて同じままになります。「あなたはコードを拡張する必要があると言っていますか?上の列Bから列Vまで作業していますか? – TheSilkCode
こんにちは@TheSilkCodeが、私は次のステップのようになり、これはCとV.間(および含む)すべての列のために仕事をしたい: サブMacro2では()マクロ ' ' Macro2では ' ' SolverReset SolverAdd CellRef:= "$ D $ 179:$ D $ 185"、Relation:= 3、FormulaText:= "0" SolverAdd CellRef:= "$ D $ 186"、関係:= 2、FormulaText:= "1" SolverOk SetCell: = "$ D $ 174"、MaxMinVal:= 2、ValueOf:= 0、ByChange:= "$ D $ 179:$ D $ 185" _ 、Engine:= 1、EngineDesc:= "GRG Nonlinear" SolverSolve UserFinish:= True ソルバーフィニッシュKeepFinal:= 1 End Sub 、次に列Eの順に続きます。速い返信をいただきありがとうございます! – orkanoid
あなたの入力したものが元のコードと異なるのは見当たりませんが、下のサンプルコードを見て、うまくいけば、少しでも微調整してgoalineに近づけることができます – TheSilkCode