我有一个单元格区域,比方说:Range(“A1:D20”)存储在Range变量中。就我而言,范围实际上是一个命名范围。 E.g。
Set rngList = Range("LIST")
我正在尝试使用'for each'循环仅遍历第2列中的Cells。编辑:这是相对引用,而不是绝对:范围的第2列。
E.g。
for each rngCell in rngList.Columns(2)
//Do stuff
next
.Columns(2)不起作用。有一种简单的方法可以做到这一点吗?
干杯
答案 0 :(得分:4)
在.Cells
之后添加.Columns(2)
:
For Each rngCell In Range("LIST").Columns(2).Cells
Debug.Print rngCell
Next
答案 1 :(得分:0)
您可以使用B列(高效)直接从现有范围创建另一个范围,或者您可以在执行操作之前检查现有范围中的每个单元格是否在第2列中:
方法1(创建衍生范围):
Sub method1()
Dim rngList As Range
Dim rngList2 As Range
Set rngList = Range("LIST")
Set rngList2 = Range("B" & rngList.Row, Range("B" & (rngList.Row + rngList.Rows.Count - 1)))
For Each rngCell In rngList2
rngCell.Value = "hey1"
Next rngCell
End Sub
方法2(检查单元格是否在第2列中):
Sub method2()
Dim rngList As Range
Set rngList = Range("LIST")
For Each rngCell In rngList
If rngCell.Column = 2 Then
rngCell.Value = "hey2"
End If
Next rngCell
End Sub
答案 2 :(得分:0)
试试这个
For Each rngCell In Intersect(rngList, rngList.Parent.Columns(2))
' //Do stuff
Next