【发布时间】:2017-10-01 12:06:19
【问题描述】:
我正在运行一个vba代码如下:
Dim score As Integer
SolverReset
score = Range("N3").Value
If score = 1 Then
SolverLoad loadArea:=Range("N4:N11")
SolverSolve UserFinish:=True
SolverFinish KeepFinal:=1
SolverReset
SolverLoad loadArea:=Range("O4:O14")
SolverSolve UserFinish:=True
SolverFinish KeepFinal:=1
SolverReset
Else:
SolverReset
SolverLoad loadArea:=Range("P4:P15")
SolverSolve UserFinish:=True
SolverFinish KeepFinal:=1
End If
SolverReset
score = Range("N48").Value
If score = 1 Then
SolverLoad loadArea:=Range("N49:N56")
SolverSolve UserFinish:=True
SolverFinish KeepFinal:=1
SolverReset
SolverLoad loadArea:=Range("O49:O59")
SolverSolve UserFinish:=True
SolverFinish KeepFinal:=1
SolverReset
Else:
SolverReset
SolverLoad loadArea:=Range("P49:P60")
SolverSolve UserFinish:=True
SolverFinish KeepFinal:=1
End If
如您所见,代码的前半部分再次重复。范围从N3到N48、N4到N49等变化。
现在我必须不断重复整个代码 172 次迭代,只更改范围部分,它是对求解器位置的单元格引用。
有什么方法可以让我使用 for 循环重复该过程 172 次,方法是在每次迭代后更改引用。
可见,所有引用每次迭代都会增加 +45。
【问题讨论】:
标签: vba excel excel-formula excel-2016