VBA遍历每一行

时间:2018-06-16 17:10:54

标签: excel vba excel-vba solver

我必须遍历163行。求解器将这些变量单元AU4更改为DH4,这将下降到第163行。目标单元格FN $ 2是相同的,它需要最大化,因此它将添加所有单元格。每个行的约束也会发生变化,因此第一行将是AU1,AZ应该是1

有没有办法呢

Sub FindMaxYs()
  Dim i As Integer
 ActiveSheet.Cells(4, AU).Select
 For i = 4 To 163
ActiveSheet.Cells(i, 1).Select
SolverReset
SolverOk SetCell:=ActiveCell, MaxMinVal:=1, ValueOf:=0, 
ByChange:=Range(ActiveCell.Offset(4, AU), ActiveCell.Offset(0, DH)), _
    Engine:=1, EngineDesc:="GRG Nonlinear"
 Next i
 End Sub
End Sub

有人可以提供指导吗?

1 个答案:

答案 0 :(得分:0)

  

求解器将这些变量单元AU4更改为DH4,这将下降到第163行。

列标识符AU和AH在用作Cells中的列参数时需要引用字符串。此外,.Offset命令采用的行数和列数远离原始行。如果使用列AU作为列偏移参数,则表明您希望距离偏移开始的位置有44列。

Sub FindMaxYs()
    Dim i As long

    with ActiveSheet

        For i = 4 To 163
            SolverReset
            SolverOk SetCell:=union(.Cells(i, "AU"), .Cells(i, "DH")), _
                     MaxMinVal:=1, ValueOf:=0, _
                     ByChange:=.Range(.Cells(i, "AU"), .Cells(i, "DH")), _
                     Engine:=1, EngineDesc:="GRG Nonlinear"
         Next i

    end with

End Sub

以上经历了4到163的循环。