Excel: UniqueInCell UniqueInString
Takes a cell, separated by character returns. Then runs a unique algorithm to remove duplicates.
Public Function ArrayLen(arr As Variant) As Integer
ArrayLen = UBound(arr) - LBound(arr) + 1
End Function
Function UniqueInCell(inputCell As Range, Optional Separator As String = vbLf)
' This function takes a cell and a delimiter and returns the same cell, but with all duplicates removed.
'Dim inputArray() As String
inputArray = Split(inputCell.Value, vbLf)
For i = 0 To ArrayLen(inputArray) - 1
' If inputArray(i) = "" Then Continue For ' Skip if blank
For j = i + 1 To ArrayLen(inputArray) - 1
If inputArray(i) = inputArray(j) Then inputArray(j) = "" ' Delete if same
Next j
Next i
UniqueInCell = Join(inputArray, "Þ")
UniqueInCell = Replace(UniqueInCell, "ÞÞ", "Þ") ' Need to iteratively replace multiple missing lines so repeat as necessary
UniqueInCell = Replace(UniqueInCell, "ÞÞ", "Þ")
UniqueInCell = Replace(UniqueInCell, "ÞÞ", "Þ")
UniqueInCell = Replace(UniqueInCell, "ÞÞ", "Þ")
UniqueInCell = Replace(UniqueInCell, "ÞÞ", "Þ")
UniqueInCell = Replace(UniqueInCell, "ÞÞ", "Þ")
UniqueInCell = Replace(UniqueInCell, "ÞÞ", "Þ")
UniqueInCell = Replace(UniqueInCell, "ÞÞ", "Þ")
UniqueInCell = Replace(UniqueInCell, "Þ", vbLf)
End Function
Takes a string, separated by character returns. Then runs a unique algorithm to remove duplicates.
Function UniqueInString(inputString As String, Optional Separator As String = vbLf)
' This function takes a string and a delimiter and returns the same cell, but with all duplicates removed.
'Dim inputArray() As String
inputArray = Split(inputString, vbLf)
For I = 0 To ArrayLen(inputArray) - 1
' If inputArray(i) = "" Then Continue For ' Skip if blank
For J = I + 1 To ArrayLen(inputArray) - 1
If inputArray(I) = inputArray(J) Then inputArray(J) = "" ' Delete if same
Next J
Next I
UniqueInString = Join(inputArray, "Þ")
UniqueInString = Replace(UniqueInString, "ÞÞ", "Þ") ' Need to iteratively replace multiple missing lines so repeat as necessary
UniqueInString = Replace(UniqueInString, "ÞÞ", "Þ")
UniqueInString = Replace(UniqueInString, "ÞÞ", "Þ")
UniqueInString = Replace(UniqueInString, "ÞÞ", "Þ")
UniqueInString = Replace(UniqueInString, "ÞÞ", "Þ")
UniqueInString = Replace(UniqueInString, "ÞÞ", "Þ")
UniqueInString = Replace(UniqueInString, "ÞÞ", "Þ")
UniqueInString = Replace(UniqueInString, "ÞÞ", "Þ")
UniqueInString = Replace(UniqueInString, "Þ", vbLf)
If Right(UniqueInString, 1) = vbLf Then UniqueInString = Left(UniqueInString, Len(UniqueInString) - 1) ' remove last CR
If Left(UniqueInString, 1) = vbLf Then UniqueInString = Right(UniqueInString, Len(UniqueInString) - 1) ' remove first CR
End Function