Option Explicit
Sub Demo()
Dim i As Long, j As Long, lc As Long, n As Long, col As Long
Dim txt As String
Dim ar, arr
Dim t() As String
Dim dict As Object
Dim CompRng As Range
Dim comp(1 To 10) As String, a
ReDim b(1 To 600) As String
Set CompRng = Sheets("sheet2").Cells(1, 2).Resize(1, 25)
Application.ScreenUpdating = False
Set dict = CreateObject("scripting.dictionary")
With Sheets("Sheet1")
.Activate
ar = [a1].CurrentRegion
For i = 1 To UBound(ar, 1)
If ar(i, 1) = "School Name" Then
lc = .Cells(i, 1).End(xlToRight).Column
For j = 2 To lc
comp(j - 1) = ar(i, j)
Next j
i = i + 1
End If
For j = 1 To lc - 1
txt = ar(i, 1)
If Not dict.Exists(txt) Then
n = n + 1
dict.Add txt, comp(j) & "|" & ar(i, j + 1)
Else
If ar(i, j + 1) <> "" Then
dict.Item(txt) = dict.Item(txt) & "|" & comp(j) & "|" & ar(i, j + 1)
End If
End If
Next j
Next
End With
With Sheets("sheet2")
For i = 0 To dict.Count - 1
'Sheets("Sheet3").Cells(i + 1, 1).Resize(1, 2) = Array(dict.Keys()(i), dict.Items()(i))
.Cells(i + 2, 1) = dict.Keys()(i)
t = Split(dict.Items()(i), "|")
For j = 0 To UBound(t, 1) Step 2
col = Application.Match(t(j), CompRng, 0) + 1
.Cells(i + 2, col) = t(j + 1)
Next j
Next i
End With
Application.ScreenUpdating = True
End Sub
Bookmarks