[英]Get column x's Cells from a Range of Cells in Excel VBA
我有一个单元格范围,比方说:存储在Range变量中的Range(“ A1:D20”)。 就我而言,范围实际上是一个命名范围。 例如
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列(有效)直接从现有范围中创建另一个范围,也可以在进行填充之前检查现有范围中的每个单元格是否在第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
尝试这个
For Each rngCell In Intersect(rngList, rngList.Parent.Columns(2))
' //Do stuff
Next
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.