Assuming your range is A1: D4, here is a VBA macro that can do this (just put the value in column E).
Sub RangeToColumn() Dim varray As Variant Dim i As Long, j As Long, k As Long Application.ScreenUpdating = False k = 1 varray = Range("A1:D4").value For i = 1 To UBound(varray, 1) For j = 1 To UBound(varray, 2) Cells(k, 5).value = varray(i, j) k = k + 1 Next Next Application.ScreenUpdating = True End Sub
You can get fancy and use a dictionary object and transfer the array to a column, but this is simpler, and the dictionary object does not work on Mac computers. You can also use "Range (" E "and k)" instead of "Cells (k, 5)", but Cells () is slightly faster since it does not require concatenation.
Also note that by disabling screen refresh, this will work much faster.
source share