我有一个在表中过滤(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
在图像中,您可以看到它是如何手动完成的。彼得在列表中是两次,但在过滤器选择列表中,它只有一次。我只想在选择框中输入这些值。所有这些。
答案 0 :(得分:1)
下面的代码会将A列复制到表2中,然后删除所有重复项并应用您的自动过滤器。你最好使用循环来完成下面描述的任务:
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
如果有帮助,请告诉我。