Excel VBA - 在过滤时在Range函数中使用长变量

时间:2017-03-01 15:35:52

标签: excel vba excel-vba

我正在做一些事情,我需要根据标准进行过滤,并且动态变化。我能够找到我需要过滤的特定列的行数和列名。这是我的代码,

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"

现在,如何通过了解该列中的行数并了解该列号来获取要过滤的范围。我的标准是一个字符串 - "鼠标"。我在代码的最后一行收到错误。

请告诉我你的建议。提前谢谢。

1 个答案:

答案 0 :(得分:1)

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

Range

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

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