我写了下面的代码来应用自动过滤器。代码工作正常。但是我已经指定了静态范围,在这里:*Range("A1", **"M"** & lastRow).AutoFilter*
。
有没有办法用sheet2中的最后一个现有列号替换"M"
。
我已经计算了上一个现有列*myCol = rngFound.Column - 1*
。但不知道如何使用它。
请帮忙!!!
我的代码:
Sub testfilter1()
Dim lastRow As Long
Dim myCol As Long
Dim rngFound As Range
ThisWorkbook.Sheets("sheet2").Activate
lastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
Set rngFound = ActiveSheet.Rows(1).Find(What:="", LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False)
myCol = rngFound.Column - 1 ' this will give last used column
Rows("1:1").Select
Selection.AutoFilter
ActiveSheet.Range("A1", "M" & lastRow).AutoFilter Field:=4, Criteria1:="*somename*"
End Sub
答案 0 :(得分:4)
您可以在Cells()
中使用Range()
:
...Range(Cells(1,1),Cells(lastRow,myCol))...
Cells(1,1)
是单元格A1
。格式为Cells([row],[column])
编辑:刚刚意识到你也可以使用Range("A1",Cells(lastRow,myCol))
。就个人而言,如果我使用Cells()
,我会在Range()
的两个地方都这样做,但这样的个人偏好以及其他方式对您也有效。