如何使用VBA在Excel中迭代可变列长度范围

时间:2012-03-23 17:46:09

标签: excel vba loops

例如,如果一个工作表中的数据如下所示: enter image description here

UsedRange.Columns.Count为6,这是所有行的最大列数。 即使我使用

进行迭代
For each row in UsedRange.Rows
       For each cell in row.Cells
           ...
       Next cell
Next row

每行仍然只有6个。

2 个答案:

答案 0 :(得分:2)

如果单元格为空,则退出单元格循环。

For Each Row In UsedRange.Rows
   For Each cell In Row.Cells
       If IsEmpty(cell) Then
            Exit For
       End If

       'Do what you want here...

   Next cell
Next Row

答案 1 :(得分:0)

UsedRange将返回一个连接范围。在你的情况下,一个小测试:

Sub test()
Debug.Print UsedRange.Address
End Sub

打印$A$1:$F$4

因此,在执行代码之前,最好先检查单元格中是否有值。

请参阅此SO主题:How to check if a cell is empty?来执行此操作。