Option Explicit
Sub MergeRows()
Dim LastRec As Long, _
TitleCount As Long, _
CurrentRec As Long, _
Ndx As Long, _
DestRow As Long, _
FieldPtr As Long, _
TitleList As Range, _
TestTitle As String
Dim MergeRec(1 To 1, 1 To 12) As Variant
LastRec = Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row
Set TitleList = Sheets("Sheet1").Range("A2:A" & LastRec)
For CurrentRec = 2 To LastRec
TestTitle = Sheets("Sheet1").Cells(CurrentRec, 1).Value
MergeRec(1, 1) = TestTitle
'count the occurances of each title in the list
TitleCount = Application.WorksheetFunction.CountIf(TitleList, TestTitle)
FieldPtr = 1
For Ndx = CurrentRec To CurrentRec + TitleCount - 1
'check each field of each record, if not blank copy to mergerec
FieldPtr = FieldPtr + 1
If Sheets("sheet1").Cells(Ndx, FieldPtr).Value <> "" Then
MergeRec(1, FieldPtr) = Sheets("sheet1").Cells(Ndx, FieldPtr).Value
End If
Next Ndx
DestRow = DestRow + 1
'copy mergerec to sheet 2
Sheet2.Cells(DestRow, 1).Resize(, 12) = MergeRec
' skip down to the next unique title
CurrentRec = CurrentRec + TitleCount - 1
Next CurrentRec
'copy the header
Sheet1.Range("a1").Resize(, 12).Copy Sheet2.Range("A1").Resize(, 12)
End Sub
Bookmarks