This works for your example, but I'm not sure if other things such as the number of categories A/B/C/D varies. This code assumes not.
Sub x()
Dim c As Long, nLast As Long
Sheets("Datasheet").Activate
nLast = Cells(Rows.Count, 1).End(xlUp).Row - 2
c = 7
With Sheets("Separated")
.Cells(1, 1).Resize(, 6) = Array("PER1A", "PER1B", "PER1C", "PER1D", "PER1E", "PER1F")
.Cells(1, 7).Resize(, 4) = Array("A", "B", "C", "D")
Do While Not IsEmpty(Cells(3, c))
Cells(3, 1).Resize(nLast, 6).Copy .Cells(Rows.Count, 1).End(xlUp)(2)
Cells(3, c).Resize(nLast, 4).Copy .Cells(Rows.Count, 7).End(xlUp)(2)
c = c + 4
Loop
End With
End Sub
Bookmarks