我必须遍历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
有人可以提供指导吗?
答案 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的循环。