It first sorts your array by the required column

then picks out each unique value from the column and drops it into a collection

Repeats for the other columns

then loads the values from the collection in your new array and sorts them

```
Dim colUniqueVals As Collection
Sub GetUniqueArrayVals()
Dim FoRArtstempArr() As Variant
Dim RelatedFoRstempArr()
'This just created a temp tempArray for my practice
FoRArtstempArr() = Range("A1:S33")
'initialise new arrCollection to store unique values later
Set colUniqueVals = New Collection
'sort FoRArtstempArr by Column 10
SortArray FoRArtstempArr, 10
'load unique values from Column 10 into a Collection
LoadUniqueValues FoRArtstempArr, 10
'repeat for Column 13 and 16
SortArray FoRArtstempArr, 13
LoadUniqueValues FoRArtstempArr, 13
SortArray FoRArtstempArr, 16
LoadUniqueValues FoRArtstempArr, 16
'redim to size of arrCollection
ReDim RelatedFoRstempArr(1 To colUniqueVals.Count)
'load arrCollection values into RelatedFoRstempArr
For i = 1 To colUniqueVals.Count
RelatedFoRstempArr(i) = colUniqueVals(i)
Next i
'sort RelatedFoRstempArr
SortArray RelatedFoRstempArr
End Sub
Sub SortArray(ByRef tempArr, Optional arrCol As Integer)
'procedure to sort arrColumn of tempArray
Dim arrRow As Long
Dim tempVal As Variant
If Not arrCol = 0 Then
For arrRow = 1 To UBound(tempArr, 1) - 1
If tempArr(arrRow, arrCol) > tempArr(arrRow + 1, arrCol) Then
tempVal = tempArr(arrRow, arrCol)
tempArr(arrRow, arrCol) = tempArr(arrRow + 1, arrCol)
tempArr(arrRow + 1, arrCol) = tempVal
SortArray tempArr, arrCol
End If
Next
Else
For arrRow = 1 To UBound(tempArr, 1) - 1
If tempArr(arrRow) > tempArr(arrRow + 1) Then
tempVal = tempArr(arrRow)
tempArr(arrRow) = tempArr(arrRow + 1)
tempArr(arrRow + 1) = tempVal
SortArray tempArr
End If
Next
End If
End Sub
Sub LoadUniqueValues(ByRef tempArr, arrCol As Integer)
'procedure to load unique values into a arrCollection
Dim arrRow As Long
Dim uCount As Long
On Error Resume Next
For arrRow = 1 To UBound(tempArr, 1)
If tempArr(arrRow, arrCol) <> tempArr(arrRow + 1, arrCol) Then
colUniqueVals.Add tempArr(arrRow, arrCol)
End If
Next
End Sub
```