Excel自动筛选提取分类值
我有一个小的VBA函数来过滤(A)。
(A) | B | C | D | E x x y x zx
现在我想输出行(A)中所有可能的值
– >'x','y','zx'
在过滤之前,但是不知道如何得到这个信息。
Sub MakeFilter() Worksheets("Sheet1").Range("A3:AT1000").AutoFilter field:=1, Criteria1:="x", _ VisibleDropDown:=True End Sub
在图像中,你可以看到它是如何手动完成的。 彼得在列表中是两倍,但在筛选器select列表中,它只有一次。 我只想要select框中的那些值。 他们全部。
第一图像 第二图像
下面的代码将A列复制到工作表2中,然后删除所有重复项并应用您的自动filter。 你最好使用一个循环来完成下面描述的任务:
Sub MakeFilter() Dim ws As Worksheet Dim wbnew As Workbook x = 0 Set wbnew = Workbooks.Add(xlWBATWorksheet) For Each ws In ActiveWorkbook wbnew.Sheets(1).Range("A3:A1000").Offset(0, x).Value = ws.Sheets(1).Range("A3:A1000").Value wbnew.Sheets(1).Range("A3:A1000").Offset(0, x).RemoveDuplicates Columns:=Array(1), Header:=xlNo x = x + 1 ws.Range("A3:AT1000").AutoFilter field:=1, Criteria1:="x", VisibleDropDown:=True Next ws End Sub
让我知道如果有帮助。