Sub OddyX(): Dim DS1, DS2, CT, R As Range, D As Date, N As String, CTD As Date, A As Single
Dim g As Long, i As Long, j As Long, k As Long, H As Single, P1 As String, P2 As String
Set R = Cells.Find("Dataset 1"): DS1 = R.Offset(2, -1).CurrentRegion
Set R = Cells.Find("Dataset 2"): DS2 = R.Offset(2, -1).CurrentRegion
Set R = Cells.Find("Combined table"): k = 4
CT = R.Offset(0, -2).Resize(UBound(DS1, 1) + UBound(DS2, 1), UBound(DS1, 2) + UBound(DS2, 2))
Set R = R.Offset(0, -2).Resize(UBound(CT, 1), UBound(CT, 2)): CTD = CT(2, 3)
R.Offset(3).ClearContents
For i = 2 To UBound(DS1): g = k
Do Until DS1(i, 1) <> "": i = i + 1: Loop: N = DS1(i, 1)
P1 = DS1(i, 2): H = DS1(i, 3): D = DS1(i, 4): DS1(i, 1) = ""
CT(k, 1) = N: CT(k, 2) = D: CT(k, 3) = P1: CT(k, 4) = H: k = k + 1
For j = i + 1 To UBound(DS1)
If LCase(DS1(j, 1)) = LCase(N) Then
P1 = DS1(j, 2): H = DS1(j, 3): D = DS1(j, 4): DS1(j, 1) = ""
CT(k, 1) = N: CT(k, 2) = D: CT(k, 3) = P1: CT(k, 4) = H: k = k + 1
End If: Next j
For j = 2 To UBound(DS2)
If LCase(DS2(j, 1)) = LCase(N) Then
P2 = DS2(j, 2): A = DS2(j, 3): DS2(j, 1) = ""
CT(g, 5) = P2: CT(g, 7) = A: g = g + 1
End If: Next j
If g > k Then k = g
k = k + 1
If k > UBound(CT) Then ReDim Preserve CT(k, UBound(CT, 2))
GetNext: Next i: R = CT: End Sub
Bookmarks