我的i
循环遇到了问题。出于某种原因,我的循环只经历了第一次迭代(i=0
)然后停止。这是我的代码:
Private Sub DeleteFillerRows()
Dim firstRow As Integer
Dim lastRow As Integer
Dim searchRange As Range
Dim i As Integer
For i = 0 To i = 2
If i = 0 Then
lastRow = 1
End If
MsgBox (i) 'used for testing, only displays the first i (0)
Set searchRange = Range("A" & CStr(lastRow) & ":A1000")
firstRow = searchRange.Find(What:="Name /", LookAt:=xlWhole).Row
MsgBox (firstRow)
lastRow = searchRange.Find(What:="Region 1", LookAt:=xlWhole).Row - 2
MsgBox (lastRow)
Next i
End Sub
任何人都可以帮我吗?我觉得愚蠢的问一个简单的i循环,但我无法看到我可能出错的地方。
答案 0 :(得分:4)
For
循环的界限如下:
For <counter> = <start> To <end>
在您的情况下,<counter>
是变量i
,<start>
是0
,<end>
是表达式i = 2
。
它只执行一次的原因是因为表达式i = 2
评估为Boolean
,并且它始终为false,因为循环的初始值设定项将其设置为0
(False
)。
如果您使用括号重写代码进行分组,那么发生的事情会更加清晰:
For i = 0 To (i = 2)
... ...变为
For i = 0 To False
......这是......
For i = 0 To 0
正如@ScottCraner在评论中正确指出的那样,只需将该行更正为:
For i = 0 to 2