Excel VBA代码,用于带有值列表的近似过滤器数据

时间:2019-06-25 08:02:59

标签: vba

我当前的代码仅过滤“过滤条件”列表中的完全匹配项。 您能否帮助更改代码以从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

1 个答案:

答案 0 :(得分:0)

您最多只能使用带有两个表达式的通配符。

AutoFilter Field:=1, Criteria1:="=*foo*", Operator:=xlOr, Criteria2:="=*bar*"

您不能使用值数组来做到这一点

AutoFilter Field:=1, Criteria1:=Array("*foo*", "*bar*"), Operator:=xlFilterValues

将仅返回完全匹配项。

如果要在代码中执行此操作,则将需要备用方法。