Sub Test()
Dim a, b
Application.ScreenUpdating = False
With ActiveSheet
a = .Range("C4:C43").Value
CloneArray a, .Range("AV4"), 18, True
b = Application.Transpose(Range("D3:U3").Value)
CloneArray b, .Range("AW4"), UBound(a, 1), False
End With
Application.ScreenUpdating = True
End Sub
Sub CloneArray(ByVal arr, ByVal rngT As Range, ByVal n As Integer, ByVal allItems As Boolean)
Dim i As Long, ii As Long, k As Long
ReDim b(1 To UBound(arr, 1) * n, 1 To 1)
If allItems Then
For i = 1 To n
For ii = LBound(arr, 1) To UBound(arr, 1)
k = k + 1
b(k, 1) = arr(ii, 1)
Next ii
Next i
Else
For i = LBound(arr, 1) To UBound(arr, 1)
For ii = 1 To n
k = k + 1
b(k, 1) = arr(i, 1)
Next ii
Next i
End If
rngT.Resize(UBound(b, 1), UBound(b, 2)).Value = b
End Sub