如何在VBA中使用while循环使用Lbound和Ubound?

时间:2017-05-10 14:57:30

标签: vba excel-vba excel

我必须使用while循环原因,如果我使用for循环,一些我的循环没有结束util最后一行。但我在这里混淆的是我试图尽可能快地循环它,所以我使用变量范围并将所有数据转储到一个变量中。问题是我在下面的这行中遇到错误。知道如何解决它。使用To的错误是不完整的。

          Dim allData as Variant
          allData = ws.Range("A2:Z1048576").Value

          While i = UBound(allData, 2) To LBound(allData, 2)

1 个答案:

答案 0 :(得分:0)

如果您要遍历allData中的每个值,您将需要嵌套循环,一个遍历行,一个迭代遍历列。

这样的事情应该有效。

Sub iterate2D()
    Dim allData As Variant
    allData = Range("A2:Z1048576").Value
    For i = LBound(allData) To UBound(allData)  'For Row
        For j = LBound(allData, 2) To UBound(allData, 2) 'For Column
            'Your code
        Next
    Next
End Sub

另一种方法是,您可以简单地遍历选择中的每个单元格,而不会将所选范围的值转储到数组中。

Sub iterate()
    For Each cell In Range("A2:Z1048576")
        'Your code
    Next
End Sub