Excel 使用宏的求解器

Excel Solver using Macro

我有一个包含 300 行数据的 excel 文件,我需要在每一行中使用求解器。 K 列的每个单元格中都有一个方程式,通过更改单元格 H9 应等于零。

求解器:

求解器应该从第 9 行到第 309 行工作。

我可以在互联网上找到很多类似的问题,但我无法根据我的情况修改编程代码。

*Sub Macro2()
' Macro2 Macro
'
Sneltoets: Ctrl+v
'
Dim c As Range
Dim nRows As Integral
nRows = 300
For Each c In Range("$H:$H9")
        SolverOk SetCell:=c.Offset(0, 3), MaxMinVal:=3, ValueOf:=0, ByChange:=c.Address, _
            Engine:=1, EngineDesc:=" GRG Nonlinear "
        SolverSolve userfinish:=True
        SolverFinish keepfinal:=1
Next
End Sub*

这是我第一次在 Excel 中编程。

如果有人能帮助我,我将不胜感激!

我尝试了下面的脚本,对我来说效果很好。您可能需要添加一两个小调整,以使其完全按照您的要求执行,但根据我对您的要求的理解,它应该非常接近您的需要。

Sub Macro2()

Dim c As Range
Dim nRows As Integer
Dim i As Integer
nRows = 300

i = 9
For Each c In Range("$H:$H9")

    c.Select
    SolverOk SetCell:=Range("H" & i), MaxMinVal:=3, ValueOf:=0, ByChange:=Range("K" & i), Engine:=1 _
        , EngineDesc:="GRG Nonlinear"
    SolverSolve True
    i = i + 1

Next c
End Sub

我找到了这段代码并且有效:

Sub example()

Dim oRng    As Range
Dim c       As Range

Set oRng = Range("K9:K309")
For Each c In oRng
    c.GoalSeek _
      Goal:=0, _
      ChangingCell:=c.Offset(0, -3)
Next c

End Sub

queens_living写的代码甚至做得更好

谢谢!