У меня есть следующий код. Как вы можете видеть на следующем шаге цикла. Две внутренние петли работают нормально, но внешний контур не работает вообще. Кажется, что-то с тем, как я «тускнею» в переменных, но, честно говоря, я не уверен, почему это не работает. Чтобы упростить, я удалил часть кода внутри внутреннего цикла, но я не думаю, что это повлияет на следующие циклы.Вложенный цикл цикла с шагом не работает
Sub AlgorithmOptimizertest()
Dim PBmin As Double
Dim PBmax As Double
Dim PBstep As Double
Dim PRORmin As Double
Dim PRORmax As Double
Dim PRORstep As Double
Dim ROEmin As Double
Dim ROEmax As Double
Dim ROEstep As Double
PBmin = Sheets("ModelSummary").Range("AP6").Value
PBmax = Sheets("ModelSummary").Range("AP7").Value
PBstep = Sheets("ModelSummary").Range("AP8").Value
PRORmin = Sheets("ModelSummary").Range("AO6").Value
PRORmax = Sheets("ModelSummary").Range("AO7").Value
PRORstep = Sheets("ModelSummary").Range("AO8").Value
ROEmin = Sheets("ModelSummary").Range("AD6").Value
ROEmax = Sheets("ModelSummary").Range("AD7").Value
ROEstep = Sheets("ModelSummary").Range("AD8").Value
For k = ROEmin To ROEmax Step ROEstep
Range("AD5").Value = k
For j = PRORmin To PRORmax Step PRORstep
Range("AO5").Value = j
For i = PBmin To PBmax Step PBstep
Range("AP5").Value = i
Call PorfolioBuilder
Next i
Next j
Next k
End Sub
Подтвердили ли вы, что значение в AD8 (при добавлении к AD6) не превышает значения в AD7, таким образом, выполняя цикл только один раз ? Я предполагаю, что внешний цикл выполняется хотя бы один раз, так как вы говорите, что внутренние петли работают нормально. – Dave
Этот код выиграет от большого «ole [With ... End With statement] (https://msdn.microsoft.com/en-us/library/wc500chb.aspx), который определил рабочий лист * ModelSummary * вокруг всех код. Вы выбираете, активируете или создаете другой рабочий лист в PorfolioBuilder? – Jeeped
Каковы значения ROEmin, ROEmax и ROEstep? –