我正在尝试使用VBA创建自动过滤器(Excel 2013)。我发现了两个困难:
我的代码:
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,但它不起作用。当我运行我的代码时(即使没有任何通配符解决方案)我仍然收到以下错误:“编译错误:未找到命名参数”,并突出显示标准。
答案 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。