title: Excel VBA Method 'Range' of object'_global' failed error 1004
body: <p>I can't for the life of my figure out why I'm getting "'Range' of object'_global' failed" on my do while statement. It's like the range named RC3 isn't being recognized. Any help is greatly appreciated.</p>
  
  <pre><code>Sub DeleteBlankRows()
  
  Dim Allrws As Range
  Dim Rws As Range
  Dim RC2 As Range
  Dim RC3 As Range
  Dim I As Integer
  Dim CopyRange As Range
  Dim LastRow As Long
  
  With Application
  
  '.ScreenUpdating = False ' don't spam the interface with selections
  
      With ActiveSheet
  
          LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row ' Put the number of the last row in LastRow
  
      End With
  
      Set Allrws = Range("A2:S" &amp; CStr(LastRow))  ' set range to be observed
  
      For Each Rws In Allrws.Rows   ' for each row in the range of Allrws call it Rws and do the following with it
  
          Set RC2 = Rws.Offset(0, 3).Resize(1, 1)      ' move and resize the range of RC2 to include only the cell under column D
          Set RC3 = Rws.Offset(0, 7).Resize(1, 1)      ' move and resize the range of RC3 to include only the cell under column I        
          I = 0   ' initilize the rows deleted counter
  
              Do While (Range(RC3).Value &lt;&gt; "" And I &lt; 30)    ' as long as RC points to a empty cell and we haven't removed more then 30 rows keep removing rows                                                             
  
                  If (range(RC2).Value = "Permit &amp; Design" Or range(RC2).Value = "Miscellanious") Then 'don't delete row if Permit &amp; Design or Miscellanious is in the cell under column D
  
                    I = 30        ' escape the loop if true
  
                  Else
  
                    Selection.EntireRow.Delete      ' delete the selected row if false
  
                    I = I + 1                       ' add 1 to the counter
  
                  End If        
  
              Loop                                   ' Go back to the start of the Do While
  
      Next Rws                    ' go back to the For Each and put the next row in Rws
  
      .ScreenUpdating = True      ' now update the interface with the changes
  
  end with
  
  end sub
  </code></pre>