Hi James,

A common approach here is to use a collection to effectively filter-out any duplicates. Something like this:

Option Base 1

Sub Test()
    Dim myArray(3, 10) As String, lDim1 As Long, lDim2 As Long
    Dim colUnique As New Collection, lCnt As Long
myArray(1, 1) = "ABC Co"
    myArray(2, 1) = "123456"
    myArray(3, 1) = "Beans"
    myArray(1, 2) = "ABC Co"
    myArray(2, 2) = "234567"
    myArray(3, 2) = "Carrots"
    myArray(1, 3) = "ABC Co"
    myArray(2, 3) = "345678"
    myArray(3, 3) = "Lettuce"
    myArray(1, 4) = "XYZ Co"
    myArray(2, 4) = "456789"
    myArray(3, 4) = "Mustard"
    myArray(1, 5) = "XZY Co"
    myArray(2, 5) = "567890"
    myArray(3, 5) = "Beef"
    myArray(1, 6) = "123 Co"
    myArray(2, 6) = "678901"
    myArray(3, 6) = "Ice Cream"
    myArray(1, 7) = "456 Co"
    myArray(2, 7) = "789012"
    myArray(3, 7) = "Bread"
    myArray(1, 8) = "456 Co"
    myArray(2, 8) = "890123"
    myArray(3, 8) = "Lemonade"
    myArray(1, 9) = "789 Co"
    myArray(2, 9) = "901234"
    myArray(3, 9) = "Plates"
    myArray(1, 10) = "654 Co"
    myArray(2, 10) = "012345"
    myArray(3, 10) = "Cups"
lDim1 = 1
    'look at first element entries only
On Error Resume Next
    For lDim2 = 1 To 10
    colUnique.Add myArray(lDim1, lDim2), CStr(myArray(lDim1, lDim2))
    Next lDim2
    On Error GoTo 0
    'add items to collection (can't accept duplicates)
For lCnt = 1 To colUnique.Count
    MsgBox colUnique(lCnt)
    Next lCnt
    'show unique items
End Sub
An alternative, building on Jacob's suggestion, would be to copy the data to a worksheet and use the Advanced Filter with the 'Unique' option. If there is a large amount of data and speed is an issue you may need to time the various approaches that you end up with and pick the most appropriate.

HTH