我当前的代码仅过滤“过滤条件”列表中的完全匹配项。 您能否帮助更改代码以从Emp列表中近似匹配过滤器 我在下面列出了代码。快速修复将不胜感激。谢谢
Sub Filter_My_Data()
Dim Data_sh As Worksheet
Dim Filter_Criteria_Sh As Worksheet
Dim Output_sh As Worksheet
Set Data_sh = ThisWorkbook.Sheets("Data")
Set Filter_Criteria_Sh = ThisWorkbook.Sheets("Filter_Criteria")
Set Output_sh = ThisWorkbook.Sheets("Output")
Output_sh.UsedRange.Clear
Data_sh.AutoFilterMode = False
Dim Emp_list() As String
Dim n As Integer
n = Application.WorksheetFunction.CountA(Filter_Criteria_Sh.Range("A:A")) - 2
ReDim Emp_list(n) As String
Dim i As Integer
For i = 0 To n
Emp_list(i) = Filter_Criteria_Sh.Range("A" & i + 2)
Next i
Data_sh.UsedRange.AutoFilter 12, Emp_list(), xlFilterValues
Data_sh.UsedRange.Copy Output_sh.Range("A1")
Data_sh.AutoFilterMode = False
MsgBox ("Data has been Copied")
End Sub
答案 0 :(得分:0)
您最多只能使用带有两个表达式的通配符。
AutoFilter Field:=1, Criteria1:="=*foo*", Operator:=xlOr, Criteria2:="=*bar*"
您不能使用值数组来做到这一点
AutoFilter Field:=1, Criteria1:=Array("*foo*", "*bar*"), Operator:=xlFilterValues
将仅返回完全匹配项。
如果要在代码中执行此操作,则将需要备用方法。