Ich versuche, VBA-Code zu schreiben, der wiederholt eine Zielfunktion (Zellen in Spalte P) durch Ändern (Zellen in Spalte H) löst. Hiermit habe ich die folgenden Einschränkungen:VBA-Code wiederholt zu lösen
Erste Einschränkung: H_i <= H_i-1, e.g. H3 <= H2
und so weiter bis zur letzten Zeile.
Zweite Einschränkung: L_i >= L_i-1, e.g. L3 >= L2
und so weiter bis zur letzten Zeile.
Der Code bisher:
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
Mein Wert in H2 einen Startwert von 0.931
ist (ein gegebener Wert). Aus irgendeinem Grund antwortet mein Code einen Wert von 0.53
in H3, wo ich erwartet, einen Wert viel näher zu zu finden. Darüber hinaus wird meine Zielfunktion auf der Basis von physikalischen Beziehungen berechnet, in denen der Wert 0.53
unterhalb einer unteren Grenze liegt.
Kann mir jemand sagen, ob der Code, den ich verwende, korrekt ist? Jede Hilfe wird geschätzt!
Abrufen der Zelle Referenzinformationen zu Solver ist schwierig. Es gibt eine Reihe anderer Herausforderungen ... [siehe die Antwort auf diese Frage] (http://stackoverflow.com/questions/36671991/use-solver-in-vba-with-loop-in-rows/36682703) – OldUgly