VBA 中变量的空值

发布于 2024-10-31 11:01:37 字数 173 浏览 0 评论 0原文

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

当数据不完整或不相关时,我需要能够为某些记录的某些字段分配 Null 值,但如果我将变量声明为字符串、日期或整数,则在尝试分配 Null 值时会出现错误。

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

How do I define a Null string, date or integer in VBA?

I need to be able to assign a Null value to some fields for certain records when data is incomplete or irrelevant, but if I declare a variable as a String, Date or Integer, I get errors when trying to assign a Null value.

Is the only solution to use Variant? If so, then what is the point of all other datatypes in VBA?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

红ご颜醉 2024-11-07 11:01:37
Dim x As Variant
x = Null

只有 Variant 数据类型可以保存值 Null

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

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

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

当然,正如本网站上其他线程所讨论的那样,变体确实有其一席之地。

Dim x As Variant
x = Null

Only the Variant data type can hold the value Null.

A Variant is a special data type that can contain any kind of data [...] A Variant can also contain the special values Empty, Error, Nothing, and Null.

The "point" of all the other data types is precisely that they cannot contain any ol' kind of data. This has two advantages that I can think of:

  • It's more difficult for the programmer to assign data of an unintended type to the variable by mistake, since this will be detected at compile time. This can help prevent bugs and make things clearer for you and the next person who will be maintaining your code.
  • Narrow data types save storage space. Putting integers in a Variant (16 bytes) takes up way more memory than putting them in an Int (2 bytes). This becomes significant if you have large arrays.

Of course, Variants do have their place, as other threads on this site discuss.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文