Excel VBA – 在过滤时使用Range函数中的长variables

我正在做一些事情,我需要根据条件进行过滤,并且dynamic地进行更改。 我能find我需要过滤的特定列的行数和列名称。 这里是我的代码,

Sub trial() Dim colm As Long, Rowz As Long, Coladd As String Dim nwb As Workbook, wb As Workbook Dim nwk As Worksheet, wk As Worksheet, wk1 As Worksheet colm = WorksheetFunction.Match("HeaderString", Sheets("Sheet1").Rows(1), 0) Columns(colm).Select Rowz = ActiveSheet.Cells(Rows.Count, colm).End(xlUp).Row Selection.AutoFilter ActiveSheet.Range("$colm.Address$1:$colm.Address$Rowz").AutoFilter Field:=1, Criteria1:="Mouse" 

现在我怎样通过知道该列中的行数并知道列号来获取范围。 我的标准是一个string – “鼠标”。 我在我的代码的最后一行出现错误。

请给我你的build议。 提前致谢。

要使用列号,最简单的方法是在Range调用中使用两个Cells Range用:

 Range(Cells(1, colm), Cells(Rowz, colm)).AutoFilter Field:=1, Criteria1:="Mouse" 

另请注意,如果您需要为该范围指定一个工作表,则应该使用该工作表限定范围和两个单元格调用:

 Sheets("Some sheet").Range(Sheets("Some sheet").Cells(1, colm), Sheets("Some sheet").Cells(Rowz, colm)).AutoFilter Field:=1, Criteria1:="Mouse"