我正在尝试使用此代码选择特定列的值
Set rng = Range("O2", Range("O2").End(xlDown))
但不知怎的,这不起作用,我甚至尝试使用
Set rng = ThisWorkbook.Sheets("Sample").Range("O2", Range("O2").End(xlDown))
也没有。
答案 0 :(得分:1)
这很有效,但我很困惑为什么设置rng =范围(" O2",范围(" O2")。结束(xlDown))没有工作
O2
以下的单元格是否为空白,或者是否有隐藏的行?
使用Find
比xlUp
和xlDown
技术更强大。它确实处理了我上面提出的问题(隐藏行等)
Sub AnotherWay()
Dim rng1 As Range
Set rng1 = Range("O:O").Find("*", [o1], xlFormulas, , , xlPrevious)
If rng1.Row > 2 Then
Set rng2 = Range(rng1, [o2])
Debug.Print rng2.Address
Else
MsgBox "range invalid"
End If
End Sub
答案 1 :(得分:0)
您的代码工作正常,如果列中没有空白单元格,则会给您所需的结果,否则会给您错误的地址
你可以做同样的事情
Dim frow As Long
frow = Worksheets("Sample").Range("O" & Rows.Count).End(xlUp).Row
Set rng = Worksheets("Sample").Range("O2:O" & frow)
Debug.Print rng.Address