使用求解器对整个数据集执行迭代

问题描述 投票:0回答:0

我正在尝试在 VBA 中创建一个宏,我在其中使用迭代来获得与求解器看起来像这样的排放线:

但是当我在我的代码中使用求解器时,我总是得到非常不切实际的结果。

这是我执行宏的原始数据。我已经尝试添加很多条件,但有些似乎不起作用。我不确定那是因为数据排序还是其他原因,但无论如何它都不起作用:

我的代码是这样的:

Sub Makrosolver()
    Dim i As Integer
    For i = 88 To 212 Step 2
    SolverReset
    SolverOk SetCell:="$M$" & i, MaxMinVal:=3, ValueOf:=0, _
    ByChange:="$G$" & i + 1 & ":$J$" & i + 1, EngineDesc:="GRG Nonlinear"

    SolverAdd CellRef:="$E$" & i + 1, Relation:=1, FormulaText:="<=" & Range("E" & i - 1) + Range("L72").Value
    SolverAdd CellRef:="$E$" & i + 1, Relation:=3, FormulaText:=">=" & Range("E" & i - 1) - Range("L72").Value

    SolverAdd CellRef:="$J$" & i + 1, Relation:=1, FormulaText:="<=$C$" & i
    SolverAdd CellRef:="$L$" & i, Relation:=2, FormulaText:="=$K$" & i & "+$I$" & i
    SolverAdd CellRef:="$I$" & i, Relation:=3, FormulaText:=">=0"
    SolverAdd CellRef:="$G$" & i + 1, Relation:=3, FormulaText:=">=0"

        If Range("E" & i + 1).Value > Range("E" & i - 1).Value Then
            Hi = 1
        Else
            Hi = -1
        End If

    SolverAdd CellRef:="$H$" & i, Relation:=3, FormulaText:=">=" & Hi & "*0"

    SolverSolve UserFinish:=True
    Next i
End Sub

我已经尝试设置很多不同的起始值并设置更多条件,但没有成功。

如果需要我也可以分享文件,这样公式就可以看到了

excel vba solver
© www.soinside.com 2019 - 2024. All rights reserved.