范围内的VBA向后循环

时间:2020-04-08 09:58:45

标签: excel vba loops count row

我没什么问题,那就是; 我有下表,我想要的是从右到左循环并计算所有空单元格,直到代码遇到字符串为止。空单元格的数量应记录在右侧列中。 https://imgshare.io/image/vba.1tPQf

问题是我无法弄清楚如何向后循环并前进到下一行并再次从右开始。我希望你们能帮我这个忙。

谢谢。

2 个答案:

答案 0 :(得分:1)

在循环的初始化过程中,可以指定关键字“ Step”来确定循环在增量方面的表现。

Sub BackwardLoopInaRange()
Dim row As Integer, column As Integer
Dim startingPoint As Range: Set startingPoint = Cells(2, 7)
Dim resultColumn As Range: Set resultColumn = Range("H2")

Range("H2:H5").ClearContents  'reset counter

For row = 0 To 3
    For column = 0 To -6 Step -1
        If startingPoint.Offset(row, column).Value = vbnullsting Then
            resultColumn.Offset(row, 0).Value = resultColumn.Offset(row, 0).Value + 1
        Else: Exit For 'exits the inner loop if next cell in a row is not empty
        End If
    Next column
Next row

End Sub

答案 1 :(得分:-1)

只是为了改善Dariusz Sokol的答案。

Sub BackwardLoopInaRange2()
Dim row As Long, column As Long
Dim startingPoint As Range: Set startingPoint = Cells(2, 7)
Dim resultColumn As Range: Set resultColumn = Range("H1")
For row = 1 To 4
    resultColumn.Offset(row, 0).Value = 7 - startingPoint(row, 2).End(xlToLeft).column
Next row
End Sub
相关问题