Loop through each row of a range in Excel

前端 未结 4 1850
闹比i
闹比i 2020-11-28 19:01

This is one of those things that I\'m sure there\'s a built-in function for (and I may well have been told it in the past), but I\'m scratching my head to remember it.

4条回答
  •  一向
    一向 (楼主)
    2020-11-28 19:26

    In Loops, I always prefer to use the Cells class, using the R1C1 reference method, like this:

    Cells(rr, col).Formula = ...
    

    This allows me to quickly and easily loop over a Range of cells easily:

    Dim r As Long
    Dim c As Long
    
    c = GetTargetColumn() ' Or you could just set this manually, like: c = 1
    
    With Sheet1 ' <-- You should always qualify a range with a sheet!
    
        For r = 1 To 10 ' Or 1 To (Ubound(MyListOfStuff) + 1)
    
            ' Here we're looping over all the cells in rows 1 to 10, in Column "c"
            .Cells(r, c).Value = MyListOfStuff(r)
    
            '---- or ----
    
            '...to easily copy from one place to another (even with an offset of rows and columns)
            .Cells(r, c).Value = Sheet2.Cells(r + 3, 17).Value
    
    
        Next r
    
    End With
    

提交回复
热议问题