I'd think that the following code should produce a diagonal of numbers, and I am wondering why this code doesn't work as intended:
Sub RangeExample()
Dim a As Range
Set a = Sheets(1).Range("a1")
a.Value = 0
Dim i As Integer
    For i = 1 To 100
        a = a.Offset(1, 1)
        a.Value = i
    Next i
End Sub
I understand there are many ways of producing a diagonal of numbers,  I'm not asking how to do that.
What I'm asking is how I would change my range variable a to become a different range, and do that iteratively.  It seems to me that as a.offset(1,1) returns a range object that's one over and one down, I should be able to reassign a as this new range, assign a value, and move on.  
 
     
    