问题:在For currentRow = 25 To rowCount
之后,for语句的其余部分不断被跳过。
在这个有问题的代码块之前我还有另外两个For语句,它们的格式与此相同,并且都可以正常工作。
Public Sub WeightB()
Dim sourceCol As Integer, rowCount As Integer, currentRow As Integer
Dim currentRowValue As String
sourceCol = 7
rowCount = Cells(Rows.Count, sourceCol).End(xlUp).Row
For currentRow = 24 To rowCount
currentRowValue = Cells(currentRow, sourceCol).Value
If IsEmpty(currentRowValue) Or currentRowValue = "" Then
Cells(currentRow, sourceCol).Select
Exit For
End If
Next
End Sub
我已经提到了For loops being skipped without cause in VBA,但仍未能解决这个问题。
答案 0 :(得分:2)
根据您的澄清评论,rowCount
为22,那么您的For
循环就会变为
For currentRow = 24 To 22
这显然是一个无操作,因为24无法计算到22个。如果你需要计算最终数字的方向那么你可以使用像
For currentRow = 24 To rowCount Step Iif(rowCount - 24 < 0, -1, +1)
但这真的是你想要做的吗?此外,开始对行号和列号使用Long
类型,现在工作表的行数超过32767,并在所有模块的顶部使用Option Explicit
来避免恼人的自发变量创建。