-1
私は、(列Hのセル)を変更することによって目的関数(列Pのセル)を繰り返し解くVBAコードを作成しようとしています。ここで私は次の制約を持っています:繰り返して解決するVBAコード
最初の制約:H_i <= H_i-1, e.g. H3 <= H2
など最後の行まで。
2番目の制約:L_i >= L_i-1, e.g. L3 >= L2
など最後の行まで。
コードこれまで:H2で
Sub Solver_Balances()
'Automated solver to calculate the mass and heat balance
'at each time increment of 1 sec as given by the datalogger
'
Worksheets("Sheet1").Activate
RowCount = 2
Do While Not IsEmpty(Worksheets("Sheet1").Range("H" & RowCount))
SolverReset
SolverOk SetCell:=Range("P" & RowCount), MaxMinVal:=2, _
ByChange:=Range("H" & RowCount), Engine:=1, _
EngineDesc:="GRG Nonlinear"
SolverAdd Cellref:=Range("H" & RowCount), _
Relation:=1, _
FormulaText:=Range("H" & RowCount - 1)
SolverAdd Cellref:=Range("L" & RowCount), _
Relation:=3, _
FormulaText:=Range("L" & RowCount - 1)
Solversolve userfinish:=True
SolverFinish keepFinal:=1
RowCount = RowCount + 1
Loop
End Sub
私の値は0.931
の開始値(所定値)です。何らかの理由で私のコードはの値をH3に返信します。ここで私は0.93
にもっと近い値を見つけると予想していました。さらに、私の目的関数は、値0.53
が下限の下にある物理的関係に基づいて計算されます。
私が使用しているコードが正しい場合は誰でも教えてください。どんな助けもありがとう!
ソルバにセル参照情報の取得は難しいです。他にもいくつかの課題があります。[この質問の答えを見る](http://stackoverflow.com/questions/36671991/use-solver-in-vba-with-loop-in-rows/36682703) – OldUgly