Excel交叉表自动过滤器中的通配符

时间:2015-07-13 20:32:50

标签: excel vba autofilter

我正在尝试使用VBA创建自动过滤器(Excel 2013)。我发现了两个困难:

  • 首先,跨工作表过滤不起作用
  • 其次,我无法自动添加*通配符,即使在此处和互联网上的其他地方尝试了许多建议之后。我也遇到了多场过滤问题,但这可以通过使用2个过滤器来解决。

我的代码:

Dim ws As Worksheet
Dim ws2 As Worksheet

Set ws = Sheets("Szuro")
Set ws2 = Sheets("Geodeta_adatok")

ws2.Range("A1").Autofilter _
  Field:=1, _
  Criteria:=ws.Range("C1").Value

我希望搜索字符串的行为如下:字符串前后的C1加上*通配符中的值。

I tried the solution from here,但它不起作用。当我运行我的代码时(即使没有任何通配符解决方案)我仍然收到以下错误:“编译错误:未找到命名参数”,并突出显示标准。

1 个答案:

答案 0 :(得分:0)

参数为Criteria1,而不是Criteria,但这可能是一个简单的拼写错误。

我通常使用Chr(42)生成星号,但"*"也应该有效。将它们连接到条件字符串应该会为您提供您正在寻找的 Contains 过滤器。

ws2.Range("A1").AutoFilter _
    Field:=1, _
    Criteria1:=Chr(42) & ws.Range("C1").Text & Chr(42)

AutoFilter Method在处理通配符时使用主要基于文本的模式匹配。

如果我正确理解'跨表格过滤' 这一术语,您应该查看Advanced Filter method而非AutoFilter。