Skip to main content

Range.Rows property

Table of contents
  1. Syntax
  2. Remarks
  3. Example

Returns a Range object that represents the rows in the specified range.



expression A variable that represents a Range object.


To return a single row, use the Item property or equivalently include an index in parentheses. For example, both Selection.Rows(1) and Selection.Rows.Item(1) return the first row of the selection.

When applied to a Range object that is a multiple selection, this property returns rows from only the first area of the range. For example, if the Range object someRange has two areas—A1:B2 and C3:D4—,someRange.Rows.Count returns 2, not 4. To use this property on a range that may contain a multiple selection, test Areas.Count to determine whether the range is a multiple selection. If it is, loop over each area in the range, as shown in the third example.

The returned range might be outside the specified range. For example, Range("A1:B2").Rows(5) returns cells A5:B5. For more information, see the Item property.

Using the Rows property without an object qualifier is equivalent to using ActiveSheet.Rows. For more information, see the Worksheet.Rows property.


This example deletes the range B5:Z5 on Sheet1 of the active workbook.


This example deletes rows in the current region on worksheet one of the active workbook where the value of cell one in the row is the same as the value of cell one in the previous row.

For Each rw In Worksheets(1).Cells(1, 1).CurrentRegion.Rows
    this = rw.Cells(1, 1).Value
    If this = last Then rw.Delete
        last = this
    End If

This example displays the number of rows in the selection on Sheet1. If more than one area is selected, the example loops through each area.

Public Sub ShowNumberOfRowsInSheet1Selection()
    Dim selectedRange As Excel.Range
    Set selectedRange = Selection
    Dim areaCount As Long
    areaCount = Selection.Areas.count
    If areaCount <= 1 Then
        MsgBox "The selection contains " & _
        Selection.Rows.count & " rows."
        Dim areaIndex As Long
        areaIndex = 1
        For Each area In Selection.Areas
            MsgBox "Area " & areaIndex & " of the selection contains " & area.Rows.count & " rows."
            areaIndex = areaIndex + 1
    End If
End Sub

Leave a comment

Your email address will not be published. Required fields are marked *

Format your code: <pre><code class="language-vba">place your code here</code></pre>