从AutoFilter获取值

时间:2016-04-28 01:27:45

标签: excel-vba vba excel

我使用的是启用了AutoFilter的ListObject,我希望给定列中的唯一值可以在表单中使用。 Here是使用vba执行此操作的几种方法,但您需要有一些方法来捕获对表的编辑。由于AutoFilter无论如何都在完成所有这些工作,我想知道是否有办法从AutoFilter获取值。

可以这样做吗?怎么样?

enter image description here

2 个答案:

答案 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的集合问题。包括从范围中获取唯一值的几种有用,快速的方法。