如果范围是由地址指定的,我可以迭代一系列单元格以分别对每个单元格进行操作:
Dim cell as Range
For Each cell In Range("A1:A10")
debug.print cell.Address
Next cell
Run Code Online (Sandbox Code Playgroud)
产生预期的输出:
$A$1
$A$2
... etc
Run Code Online (Sandbox Code Playgroud)
但是,当我从范围集合中指定一列时Columns,迭代仅对整个列运行一次:
For Each cell In UsedRange.Columns(1)
Debug.Print cell.Address
Next cell
Run Code Online (Sandbox Code Playgroud)
仅产生一个输出,包含整列:
$A$1:$A$20
Run Code Online (Sandbox Code Playgroud)
不是UsedRange.Columns(1)一个Range物体吗?如果不是的话,那是什么??
我已经阅读了关于行/列作为范围的讨论以及Range vs Range.Cells 的讨论,但我仍然可以弄清楚如何迭代UsedRange.Columns(1).
这是因为 aColumn本身就是一个不同的对象。如果循环遍历列,则一次循环一列。循环遍历列中的单元格:
Dim cell as Range
For Each cell In UsedRange.Columns(1).Cells
debug.print cell.Address
Next cell
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
375 次 |
| 最近记录: |