EXCEL VBA 不完全匹配自动过滤器

Posted

技术标签:

【中文标题】EXCEL VBA 不完全匹配自动过滤器【英文标题】:EXCEL VBA Not exact match auto filter 【发布时间】:2018-06-18 04:57:46 【问题描述】:

我对宏中的自动筛选有疑问。代码如下。

ActiveSheet.Range("$A$1:$F$1048576").AutoFilter Field:=2, Criteria1:=r1

r1 是我要过滤的文本。但是,我注意到过滤器将根据我在 r1 中输入的内容查找完全匹配的内容。例如,我输入了 r1 = "banana",但列表只有 "bananas",它会返回 0 个匹配项。但如果我手动执行,请转到过滤器部分,输入“香蕉”,它会自动选择与我输入的壁橱匹配“香蕉”。

可能会问:是否有任何方法仍然可以使用此代码,但不能使用上述代码的几乎匹配结果?

谢谢,

托尼

【问题讨论】:

【参考方案1】:

它不是在寻找或选择最接近的匹配,而是用通配符完成您的输入。

您可以在您的条件中使用它:

Sub filter_()

r1 = "banana"
Range("A1:A9").AutoFilter field:=1, Criteria1:=r1 & "*", Operator:=xlFilterValues

End Sub

这将在您的过滤列表中包括“香蕉”和“香蕉”。

【讨论】:

以上是关于EXCEL VBA 不完全匹配自动过滤器的主要内容,如果未能解决你的问题,请参考以下文章

复制自动过滤范围,vba excel

Excel VBA 自动过滤器然后更改字段值并填写错误处理空白单元格的可能性

excel vba自动过滤范围并删除co​​l D中所有带0的行

使用 VBA 过滤 Excel 数据透视表

Excel VBA Redshift 查询性能改进

在vba中使用多个字符串过滤访问报告,获取数据类型不匹配