Declare Once, Use Many Times

If you are going to use an object more than once, declare and use object variables rather than using a fully qualified object reference each time. For instance, in the following example the FillCells2 procedure runs approximately three times as fast as the FillCells1 procedure. This is because the VBA engine doesn't have to resolve the entire object reference each time it runs through the loop.

Sub FillCells1()
    Dim iCount As Integer
    For iCount = 1 To 1000
        ActiveWorkbook.Worksheets("Sheet1").Range("a1") _
            .Offset(iCount, 0).Value = iCount
    Next iCount
End Sub

Sub FillCells2()
    Dim iCount As Integer
    Dim oRange As Range
    Set oRange = ActiveWorkbook.Worksheets("Sheet1") _
        .Range("a1")
    For iCount = 1 To 1000
        oRange.Offset(iCount, 0).Value = iCount
    Next iCount
End Sub