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

例如,如果一个工作表中的数据如下所示: 在这里输入图像说明

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

For each row in UsedRange.Rows For each cell in row.Cells ... Next cell Next row 

每行还是6。

如果单元格为空,就退出你的单元循环。

 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 

UsedRange将返回一个联接范围。 在你的情况下,一个小testing:

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

打印$A$1:$F$4

所以,在执行你的代码之前,你最好检查你的单元格是否有任何价值。

看到这个线程: 如何检查一个单元格是否为空? 这样做。