我使用的是启用了AutoFilter的ListObject,我希望给定列中的唯一值可以在表单中使用。 Here是使用vba执行此操作的几种方法,但您需要有一些方法来捕获对表的编辑。由于AutoFilter无论如何都在完成所有这些工作,我想知道是否有办法从AutoFilter获取值。
可以这样做吗?怎么样?
答案 0 :(得分:1)
我希望给定列中的唯一值可用于表单。
要从列表中获取唯一值,请使用OERN的集合。然后,您可以在表单中使用该集合
Sub Sample()
Dim ws As Worksheet
Dim lRow As Long, i As Long
Dim col As Collection, itm
Set ws = Sheet1 '<~~ Change as applicable
With ws
'~~> Find last row of col A. Change to necessary column
lRow = .Range("A" & .Rows.Count).End(xlUp).Rows
For i = 2 To lRow '<~~ Starting from 2nd row
On Error Resume Next
If Len(Trim(.Range("A" & i).Value)) <> 0 Then _
col.Add .Range("A" & i).Value, CStr(.Range("A" & i).Value)
On Error GoTo 0
Next i
End With
'~~> This is the unique list
For Each itm In col
Debug.Print itm
Next
End Sub
因此,如果列中的值为Apple, Oranges, Apple, Oranges, Oranges, Grapes
,那么最终列表将为Apple, Oranges, Grapes
答案 1 :(得分:0)
here代码非常适合处理许多常见的特定于Excel的集合问题。包括从范围中获取唯一值的几种有用,快速的方法。