我有以下代码:
ActiveSheet.Range("$A$1:$P$201").AutoFilter Field:=5, Criteria1:="=10"*
当我点击过滤条件并在搜索栏中输入10*
时,我会收到以10
开头的所有结果。使用宏时,这不起作用。目标是宏使用我提供的前两个数字进行过滤。
你能帮忙吗?
答案 0 :(得分:2)
仅当值为文本时,以下内容才会起作用:
Sub Macro2()
ActiveSheet.Range("$A$1:$P$201").AutoFilter Field:=5, Criteria1:="=10*", _
Operator:=xlAnd
End Sub
如果值不是文本,则使用“帮助”列。
修改#1 强>:
对于E栏中的邮政编码,这将过滤掉(隐藏)不包含“10 *”代码的行:
Sub GoingPostal()
Dim r As Range
For Each r In Range("E2:E201")
st = Left(r.Text, 2)
If st <> "10" Then
r.EntireRow.Hidden = True
End If
Next r
End Sub
答案 1 :(得分:2)
问题的核心似乎是尝试将文本过滤器应用于数字字段。 而不是:
ActiveSheet.Range("$A$1:$P$201").AutoFilter Field:=5 ActiveSheet.Range("$A$1:$P$201").AutoFilter Field:=5, Criteria1:="=10"*
只是:
ActiveSheet.Range("$A$1:$P$201").AutoFilter Field:=5, _
Criteria1:=">=10000", Operator:=xlAnd, Criteria2:="<=10999"
似乎有效。