首页 > 解决方案 > VBA在一个范围内向后循环

问题描述

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

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

先感谢您。

标签: excelvbaloopscountrow

解决方案


在循环的初始化中,您可以指定关键字“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

推荐阅读