Для L oop для Solver --- Максимизация прибыли - PullRequest
0 голосов
/ 27 мая 2020

Это запись макроса, которую я пробовал.

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

Может кто-нибудь сказать мне, что не так с этим кодом? большое спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...