title: What is the difference between =Empty and IsEmpty() in VBA (Excel)?
body: <p>I have used the following VBA code:</p>
  
  <pre><code>Do While .Cell(i,1) &lt;&gt; Empty
    ' doing things
    i = i+1
  Loop
  </code></pre>
  
  <p>to iterate through columns (with Double/Integer values) in Excel. Then I found a case where the test evaluates to False whenever the value of the cell is 0. I have no idea what the difference is between this case and the working ones.</p>
  
  <p>If I change the test to:</p>
  
  <pre><code>Do While Not IsEmpty(.Cell(i,1))
    ..
  Loop
  </code></pre>
  
  <p>it works fine. So my question is: What is the difference between how IsEmpty() and =Empty is evaluated? In what cases will =Empty evaluate to True for cells with value 0?</p>