【发布时间】:2016-10-10 16:16:22
【问题描述】:
我有以下代码。正如您在下一步循环中看到的那样。两个内循环工作正常,但外循环根本没有运行。这似乎与我如何“调暗”变量有关,但老实说,我不确定为什么这不起作用。为了简化,我删除了内部循环中的一些代码,但我认为这不会影响 for next 循环。
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 中的值,因此只执行了一次循环?我假设最外面的循环至少执行一次,因为你说内部循环工作正常。
-
这段代码将受益于定义了所有代码的 ModelSummary 工作表的大 'ole With ... End With statement。您是否在 PorfolioBuilder 中选择、激活或创建另一个工作表?
-
ROEmin、ROEmax、ROEstep的值是多少?