从Excel VBA中的一组单元格中获取列x的单元格

我有一个单元格范围,让我们说:范围(“A1:D20”)存储在一个范围variables。 在我的情况下,范围实际上是一个命名的范围。 例如

Set rngList = Range("LIST") 

我试图使用'for each'循环来遍历列2中的单元格。编辑:这是一个相对引用,而不是绝对:范围的第二列。

例如

 for each rngCell in rngList.Columns(2) //Do stuff next 

.Columns(2)不起作用。 有一个简单的方法来做到这一点?

干杯

.Columns(2)之后添加.Cells

 For Each rngCell In Range("LIST").Columns(2).Cells Debug.Print rngCell Next 

您可以使用列B(高效)直接从现有范围创build另一个范围,也可以在执行您的工作之前检查现有范围内的每个单元格是否在列2中。

方法1(创build一个派生范围):

 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 

尝试这个

 For Each rngCell In Intersect(rngList, rngList.Parent.Columns(2)) ' //Do stuff Next