Try this version.
Function UniqueDates(Entry As String)
UniqueDates = 0
If Entry = "" Or InStr(Entry, ", ") = 0 Then UniqueDates = 0: GoTo Quit
MyArray = Split(Entry, ", ")
'Sort Array by First Date
SortLoop:
Flag = False
For Count = 0 To UBound(MyArray) - 1
Dates1 = Split(MyArray(Count), ":")
Dates2 = Split(MyArray(Count + 1), ":")
If Dates1(0) - Dates2(0) > 0 Then
Flag = True
t = MyArray(Count)
MyArray(Count) = MyArray(Count + 1)
MyArray(Count + 1) = t
End If
Next
If Flag = True Then GoTo SortLoop
For Count = 0 To UBound(MyArray) - 1
'Get First 2 Dates
Dates1 = Split(MyArray(Count), ":")
Dates2 = Split(MyArray(Count + 1), ":")
t = Dates1(1) - Dates2(0)
If t >= 0 Then
'There is an Overlap
MyArray(Count + 1) = Dates1(0) & ":" & Dates2(1)
Else
'No Overlap
UniqueDates = UniqueDates + Dates1(1) - Dates1(0)
End If
Next
Dates2 = Split(MyArray(Count), ":")
UniqueDates = UniqueDates + Dates2(1) - Dates2(0)
Quit:
End Function
Bookmarks