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