如果范围由地址指定,我可以遍历一系列单元格以单独对每个单元格进行操作:
Dim cell as Range
For Each cell In Range("A1:A10")
debug.print cell.Address
Next cell
生成预期的输出:
$A$1
$A$2
... etc
但是当我从范围的Columns
集合中指定一列时,迭代只对整列运行一次:
For Each cell In UsedRange.Columns(1)
Debug.Print cell.Address
Next cell
仅生成一个输出,包含整列:
$A$1:$A$20
UsedRange.Columns(1)
不是Range
对象吗?如果不是,那是什么??
我已经阅读了关于行/列作为范围的讨论,以及关于范围与范围.单元格的讨论,但我仍然可以弄清楚如何在UsedRange.Columns(1)
中迭代每个单元格。
这是因为Column
本身就是一个不同的对象。 如果循环访问列,则一次循环一列。 循环访问列中的单元格:
Dim cell as Range
For Each cell In UsedRange.Columns(1).Cells
debug.print cell.Address
Next cell