Example
Sub test()
MsgBox ConcDates("Q1 2006", "Q1 2006"), , "Q1 2006, Q1 2006"
MsgBox ConcDates("2006-02-Feb", "2006-06-Jun"), , "2006-02-Feb, 2006-06-Jun"
MsgBox ConcDates("2006-01-Jan", "Q3 2006"), , "2006-01-Jan, Q3 2006"
End Sub
Function ConcDates(ByVal txt1 As String, ByVal txt2 As String) As String
Dim myYear As Long, myMonth As Long, myJoin As String
Dim SDate As Date, EDate As Date, temp As Date, i As Long
myJoin = Chr(34) & " , " & Chr(34)
If txt1 Like "Q*" Then
myMonth = Val(Replace(Split(txt1)(0), "Q", ""))
myYear = Val(Split(txt1)(1))
Else
myYear = Val(txt1)
myMonth = Val(Split(txt1, "-")(1))
End If
SDate = DateSerial(myYear, myMonth, 1)
If txt2 Like "Q*" Then
myMonth = Val(Replace(Split(txt2)(0), "Q", "")) * 3
myYear = Val(Split(txt2)(1))
Else
myYear = Val(txt2)
myMonth = Val(Split(txt2, "-")(1))
End If
EDate = DateSerial(myYear, myMonth, 1)
Do
temp = DateAdd("m", i, SDate)
ConcDates = ConcDates & myJoin & Format$(temp, "yyyy-mm-mmm")
i = i + 1
Loop Until temp = EDate
ConcDates = Mid$(ConcDates, Len(myJoin)) & """"
End Function
Bookmarks