VBA中变量的空值

时间:2011-04-12 05:56:57

标签: vba access-vba

如何在VBA中定义空字符串,日期或整数?

当数据不完整或不相关时,我需要能够为某些记录的某些字段分配Null值,但如果我将变量声明为String,Date或Integer,则在尝试分配Null值时会出错

是使用Variant的唯一解决方案吗?如果是这样,那么VBA中所有其他数据类型的重点是什么?

1 个答案:

答案 0 :(得分:34)

Dim x As Variant
x = Null

只有Variant数据类型可以包含值Null

  

Variant是一种特殊的数据类型,可以包含任何类型的数据[...] Variant也可以包含特殊值Empty,Error,Nothing和 Null

所有其他数据类型的“点”正是它们不能包含任何类型的数据。这有两个我能想到的优点:

  • 程序员更难以错误地将非预期类型的​​数据分配给变量,因为这将在编译时检测到。这有助于防止错误并使您和将要维护代码的下一个人更清楚。
  • 窄数据类型可节省存储空间。将整数放在Variant(16个字节)中占用的内存比将它们放入Int(2个字节)要多。如果您有大型数组,这将变得很重要。

当然,Variants确实有自己的位置,正如本网站上的其他主题所讨论的那样。