4

我目前会在 Range、Cells 或类似的许多不同方式中使用类似的东西,它们的基本原理相同。

Range("A1", Range("A1").End(xlDown)).AdvancedFilter Action:=xlFilterCopy, _
    CopyToRange:=Range("IV1"), Unique:=True

Dim myArr as Variant 
myArr = Range("IV1", Range("IV1").End(xlDown))
Columns("IV").Delete

有没有办法直接将这些唯一值加载到 VBA 中的任何类型的对象中,而无需复制到另一个位置?

4

1 回答 1

6

您可以使用 aCollection Object创建唯一条目。例如

Sub Sample()
    Dim Col As New Collection
    Dim itm
    Dim i As Long
    Dim CellVal As Variant

    '~~> Lets say looping through Row 1 to 22 For 
    '~~> Range("A1:A22") as mentioned in your recent comment
    For i = 1 To 22
        CellVal = Sheets("Sheet1").Range("A" & i).Value
        On Error Resume Next
        Col.Add CellVal, Chr(34) & CellVal & Chr(34)
        On Error GoTo 0
    Next i

    For Each itm In Col
        Debug.Print itm
    Next
End Sub

截图

在此处输入图像描述

于 2013-04-03T22:18:12.453 回答