Try this Olivia. It will take some time as you got just too many rows.
Sub MoveSelection()
Dim lMaxRows As Long
Dim iCol As Integer
lMaxRows = Cells(Rows.Count, "A").End(xlUp).Row
iCol = 2
If (lMaxRows / 22 > Columns.Count - 1) Then
MsgBox ("Data cannot fit in available columns. It needs " & lMaxRows / 22 & " columns where as only " & Columns.Count & " are available")
Exit Sub
End If
Do While lMaxRows >= 22
iCol = iCol + 1
Range(Cells(1, iCol), Cells(22, iCol)) = Range(Cells(23, 2), Cells(44, 2)).Value
Rows("23:44").Delete
lMaxRows = Cells(Rows.Count, "A").End(xlUp).Row
Loop
End Sub