select标题下有值的所有单元格

我有一个代码,select具有“地址”标题的列。

Sub FindAddressColumn() Dim rngAddress As Range Set rngAddress = Range("A1:Z1").Find("Address") If rngAddress Is Nothing Then MsgBox "Address column was not found." Exit Sub End If Range(rngAddress, rngAddress.End(xlDown)).Select End Sub 

我想要select第二行,或者将标题“Address”之后的行一直选到最后一行。

使用WorksheetFunction对象 MATCH函数来查找第一行中的列标题标签。

 Sub FindAddressColumn() dim cl as long with worksheets("Sheet1") if not iserror(application.match("address", .rows(1), 0)) then cl = application.match("address", .rows(1), 0) .range(.cells(2, cl), .cells(rows.count, cl).end(xlup)).select else MsgBox "Address column was not found." Exit Sub end if end with End Sub 

我更喜欢从下往上查找列中最后一个已填充的单元格,但是如果您愿意从上往下查看,则上面的代码可以很容易地修改以适应。

Range .Select 1方法并不总是引用Range对象个体或组的最可靠的方法。 用With … End With语句直接引用父工作表应该有所帮助。


¹ 请参阅如何避免使用在Excel VBAmacros中select更多的方法来摆脱依靠select和激活来实现您的目标。

如果您的地址栏中有空格,请使用以下代码:

 Sub FindAddressColumn() Dim rngAddress As Range, LastRow As Long Set rngAddress = Range("A1:Z1").Find("Address") If rngAddress Is Nothing Then MsgBox "Address column was not found." Else LastRow = Cells(Rows.Count, rngAddress.Column).End(xlUp).Row Range(Cells(2, rngAddress.Column), Cells(LastRow, rngAddress.Column)).Select End If End Sub