You could probably modularize the Unique List code into a more general purpose function
Option Explicit
Sub drv()
Dim v As Variant
Dim v1 As Variant
v = UniqueList(Worksheets("Sheet1").Range("D1:D10"))
For Each v1 In v
MsgBox v1
Next
End Sub
Public Function UniqueList(R As Range) As Variant
Dim A() As String
Dim C As Collection
Dim R1 As Range
Dim I As Long
Set C = New Collection
On Error Resume Next
For Each R1 In R.Cells
C.Add R1.Value, CStr(R1.Value)
Next
On Error GoTo 0
ReDim A(1 To C.Count)
For I = 1 To C.Count
A(I) = C.Item(I)
Next I
UniqueList = A
End Function
You can mark your thread / question [Solved] by using [Tread Tools] menu above your first post