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

を使用しCollection 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 に答える