What is the difference between =Empty and IsEmpty() in VBA (Excel)?

前端 未结 3 1017
长发绾君心
长发绾君心 2020-12-01 12:17

I have used the following VBA code:

Do While .Cell(i,1) <> Empty
  \' doing things
  i = i+1
Loop

to iterate through columns (with Do

相关标签:
3条回答
  • 2020-12-01 12:35

    From the Help:
    IsEmpty returns True if the variable is uninitialized, or is explicitly set to Empty; otherwise, it returns False. False is always returned if expression contains more than one variable.
    IsEmpty only returns meaningful information for variants.

    To check if a cell is empty, you can use cell(x,y) = "".
    You might eventually save time by using Range("X:Y").SpecialCells(xlCellTypeBlanks) or xlCellTypeConstants or xlCellTypeFormulas

    0 讨论(0)
  • 2020-12-01 12:36

    I believe IsEmpty is just method that takes return value of Cell and checks if its Empty so: IsEmpty(.Cell(i,1)) does ->

    return .Cell(i,1) <> Empty
    
    0 讨论(0)
  • 2020-12-01 12:52

    Empty refers to a variable being at its default value. So if you check if a cell with a value of 0 = Empty then it would return true.

    IsEmpty refers to no value being initialized.

    In a nutshell, if you want to see if a cell is empty (as in nothing exists in its value) then use IsEmpty. If you want to see if something is currently in its default value then use Empty.

    0 讨论(0)
提交回复
热议问题