Use arrays to fill ranges faster : Cell « Excel « VBA / Excel / Access / Word






Use arrays to fill ranges faster

 
Sub ArrayFillRange()
    Dim TempArray() As Integer
    Dim TheRange As range

    CellsDown = 3
    CellsAcross = 4
    StartTime = timer

    ReDim TempArray(1 To CellsDown, 1 To CellsAcross)
    Set TheRange = ActiveCell.range(Cells(1, 1), Cells(CellsDown, CellsAcross))
    CurrVal = 0
    Application.ScreenUpdating = False
    For I = 1 To CellsDown
        For J = 1 To CellsAcross
            TempArray(I, J) = CurrVal + 1
            CurrVal = CurrVal + 1
        Next J
    Next I

    TheRange.value = TempArray
    Application.ScreenUpdating = True
    MsgBox Format(timer - StartTime, "00.00") & " seconds"
End Sub

 








Related examples in the same category

1.Is a cell empty
2.Get the last cell
3.Magic Squares
4.Nest If statement in Do Loop While with comparison operators
5.Nest If statement in Do Loop Until for cells
6.Is active cell empty
7.Transposing is taking a rectangular block of data and rotating it so that columns become rows and vice versa.
8.Uses nested For/Next loops to count the total number of cells used in all open worksheets:
9.Selects cell G4
10.A better way to write to a range:Filling a range
11.Moving the pointer to the cell containing the greatest value