我想使用此代碼VBA:Range方法沒有給予所需的輸出
Set rng = Range("O2", Range("O2").End(xlDown))
選擇特定的列值但不知何故,這是行不通的,我甚至用
Set rng = ThisWorkbook.Sheets("Sample").Range("O2", Range("O2").End(xlDown))
其沒有按嘗試也不是。
我想使用此代碼VBA:Range方法沒有給予所需的輸出
Set rng = Range("O2", Range("O2").End(xlDown))
選擇特定的列值但不知何故,這是行不通的,我甚至用
Set rng = ThisWorkbook.Sheets("Sample").Range("O2", Range("O2").End(xlDown))
其沒有按嘗試也不是。
您的代碼工作正常,並會給你想要的結果,如果有在列中沒有空白單元格,否則它會給你錯誤的地址
你可以做同樣的事情,這樣
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
這有效,但我很困惑爲什麼設置rng = Range(「O2」,Range(「O2」)。End xlDown))沒有工作。 –
我想這個列中的數據不一致。或者你不是想要正確的工作表範圍。 – newguy
這個工作,但我很困惑,爲什麼設置RNG =範圍( 「02」,範圍( 「02」)。完(xlDown))沒有工作
低於細胞全部空白,還是有隱藏的行?
使用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
它怎麼不適合你?任何錯誤?它爲我工作得很好。使用'Debug.Print Rng.Address'來檢查範圍地址。什麼是期望的輸出? – newguy
期望的輸出是$ O $ 2:$ O $ 172315但Debug.Print給出$ O $ 2:$ O $ 1048576 –