title: Referencing specific Range of table's .DataBodyRange
body: <p>Let's say I have the following exemplary table</p>
  
  <p><a href="https://i.stack.imgur.com/geRUD.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/geRUD.png" alt="enter image description here"></a></p>
  
  <p>I have a for loop that runs through the entire <code>ListColumn(2)</code> (column C / 3) and ranks the "users" based on who has the most apples (eg. Michael would be 1, Robert 2, etc.)</p>
  
  <p><strong>However let's say, I want to reference only specific Range of the table<br>
  (eg. let's say the <code>Range("C7:C9") &lt;=&gt; ListRows(3,4,5)</code>)<br>
  How can I do that?</strong> </p>
  
  <p>I have the following code:</p>
  
  <pre><code>    Private Sub CommandButton1_Click()
  
      Dim tbl As ListObject: Set tbl = Sheets("Sheet1").ListObjects("Table1")
      Dim my_range As Range
  
      For Each my_range In tbl.ListColumns(2).DataBodyRange 
      ' ^ this runs through entire column instead of the specified range I want!
          my_range.Offset(0, 1) = WorksheetFunction.Rank(my_range, tbl.ListColumns(2).DataBodyRange)
           ' ^ again, isntead of entire DataBodyRange we should be rather referencing the specific Range
      Next my_range
  End Sub
  </code></pre>
  
  <p>Basically, I need to somehow limit the <code>.DataBodyRange</code> itself into a specific range, problem is, <code>.DataBodyRange</code> is specified to either take entire Column/Row or only 1 Cell  from the entire ListObject as <code>.DataBodyRange([row index], [column index])</code>.</p>
  
  <p>So, in the presumed example of selecting Robert,Michael,Laurel <code>ListRows(3, 4, 5)</code> the Expected Result would be:</p>
  
  <p><a href="https://i.stack.imgur.com/M6KjG.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/M6KjG.png" alt="enter image description here"></a></p>
  
  <p>Any suggestions how to do this?</p>