Это запись макроса, которую я пробовал.
SolverOk SetCell:="$B$6", MaxMinVal:=1, ValueOf:=0, ByChange:="$E$10:$E$15", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$E$10", Relation:=3, FormulaText:="$F$10"
SolverAdd CellRef:="$E$11", Relation:=3, FormulaText:="$F$11"
SolverAdd CellRef:="$E$12", Relation:=3, FormulaText:=”$F$12”
SolverAdd CellRef:="$E$13", Relation:=3, FormulaText:="$F$13"
SolverAdd CellRef:="$E$14", Relation:=3, FormulaText:="$F$14""
SolverAdd CellRef:="$E$15", Relation:=3, FormulaText:="$F$15"
SolverAdd CellRef:="$E$10", Relation:=1, FormulaText:="$G$10"
SolverAdd CellRef:="$E$11", Relation:=1, FormulaText:="$G$11"
SolverAdd CellRef:="$E$12", Relation:=1, FormulaText:="$G$12"
SolverAdd CellRef:="$E$13", Relation:=1, FormulaText:="$G$13”
SolverAdd CellRef:="$E$14", Relation:=1, FormulaText:="$G$14"
SolverAdd CellRef:="$E$15", Relation:=1, FormulaText:="$G$15"
SolverAdd CellRef:="$F$4", Relation:=1, FormulaText:="1800"
Range("F4").Select
ActiveCell.FormulaR1C1 = "=SUM(R[6]C[-1]:R[11]C[-1])"
SolverSolve
Windows("ProductMix-1.xlsm").Activate
Windows("Project1.xlsm").Activate
ActiveWindow.SmallScroll Down:=-9
End Sub
И я написал версию для l oop, и номер неверный
Dim iCol As Long
With Worksheets("Solver")
For iCol = 0 To Worksheets("Solver").Range(.Range("b10"), .Range("b10").End(xlDown)).Rows.count
SolverReset
SolverOK setcell:=.Range("B6"), MaxMinVal:=1, Bychange:=.Range(.Range("E10"), .Range("E10").offset(iCol, 0))
SolverAdd .Range("E10").offset(iCol, 0), 3, .Range("F10").offset(iCol, 0)
SolverAdd .Range("E10").offset(iCol, 0), 1, .Range("G10").offset(iCol, 0)
SolverAdd .Range("F4"), 1, "1500"
SolverSolve UserFinish:=True
Next iCol
End With
Может кто-нибудь сказать мне, что не так с этим кодом? большое спасибо