VBA(Excel)中= Empty和IsEmpty()之间有什么区别?

Chr*_*ian 27 excel vba excel-vba

我使用了以下VBA代码:

Do While .Cell(i,1) <> Empty
  ' doing things
  i = i+1
Loop
Run Code Online (Sandbox Code Playgroud)

在Excel中迭代列(具有Double/Integer值).然后我发现了一个案例,只要单元格的值为0,测试就会评估为False.我不知道这个案例和工作案例之间有什么区别.

如果我将测试更改为:

Do While Not IsEmpty(.Cell(i,1))
  ..
Loop
Run Code Online (Sandbox Code Playgroud)

它工作正常.所以我的问题是:如何评估IsEmpty()和= Empty之间的区别?对于值为0的单元格,在什么情况下将= Empty计算为True?

Jus*_*elf 29

Empty是指变量处于其默认值.因此,如果您检查值为0 =的单元格Empty是否会返回true.

IsEmpty 指的是没有初始化的值.

简而言之,如果您想查看单元格是否为空(如其值中没有任何内容),请使用IsEmpty.如果您想查看某些内容当前是否为默认值,请使用Empty.

  • 是使用IsEmpty查看单元格是否为空.但是Empty只是一个值为零的常量:它不引用变量处于默认值:它是vbEmpty的快捷方式,它是Enum的一部分,其值为零.Excel单元格的默认值是它没有值(它的IsEmpty):如果将它赋给数值变量,它将转换为零. (5认同)