在excel vba中,我试着从Cell“O2”开始选择一系列值,(O from Oyster)直到表格的末尾, 我在尝试:
Range("O2", Range.End(xlDown))
但是Argument Not Optional
失败了。我究竟做错了什么?
我正在使用Excel 2010。
答案 0 :(得分:5)
请勿使用xlDown
声明您的对象,然后使用它。
使用此
Option Explicit
Sub Sample()
Dim ws As Worksheet
Dim LRow As Long
Dim rng As Range
'~~> Change this to the relevant sheet name
Set ws = ThisWorkbook.Sheets("Sheet1")
With ws
'~~> Find last row in Col O which has data
LRow = .Range("O" & .Rows.Count).End(xlUp).Row
'~~> This is your range
Set rng = .Range("O2:O" & LRow)
With rng
'~~> Whatever you want to do
End With
End With
End Sub
答案 1 :(得分:3)
要选择从O2到该列中最后一个填充单元格的范围,您可以使用:
Range("O2", Range("O2").End(xlDown)).Select
但是这有一些问题,包括它会在任何空白处“停止”,除非绝对必要,否则你应该avoid using Select。此外,你应该养成限定你的范围的习惯,例如,指定他们所在的工作表。鉴于这一切,我建议这样的事情,假设你想要将范围内的单元格变为红色:
Sub test()
Dim LastRow As Long
Dim ws As Excel.Worksheet
Set ws = ActiveSheet
With ws
LastRow = .Range("O" & .Rows.Count).End(xlUp).Row
.Range("O2:O" & LastRow).Interior.Color = vbRed
End With
End Sub
答案 2 :(得分:2)
也许你需要
Range("O2", Range("O2").End(xlDown)).Select