4

问:我想在 Access 中使用声明为 Long 类型的 VBA 函数。有时我想返回一个 0 到 35 之间的整数,但我也希望大多数时候能够返回一个空白或 null 或类似的东西。有没有办法做到这一点?我尝试过的(变量=“”或设置变量=无)只是调用一个错误。这将在查询中使用,并将给出一列的值。我希望该列是 Long 类型。如果这样的事情是不可能的,我想这就是我需要知道的,因为我已经有了一个不同但不太理想的解决方案。谢谢你的帮助。

更新:当然,在提出问题后,我想出了一个很好的解决方案。如果我只是在 Excel 中执行 Range("whatever").Value = Range("whatever").Value,那么它将左对齐的 20 更改为右对齐的 20,此时数据透视表将其识别为数字(虽然当我只是将单元格类型转换为 Excel 中的数字时,它在数据透视表中不会被识别为数字)。所以,我删除了背景,因为它没有必要。我仍然很想知道您是否可以为声明为 long 的函数返回某种空白或 null。谢谢

4

2 回答 2

7

Null只能从Variant函数返回。
Nothing只能从Object函数返回。

所有其他人,您只能返回定义为函数返回值的类型的变量。
如果不设置值,则返回默认值
数值变量初始化为零
可变长度字符串初始化为零长度字符串 ("")
固定长度字符串用 ASCII 码 0 填充
。日期/时间变量初始化为零

于 2012-08-06T16:38:37.930 回答
2

由于未初始化的 long 的值为 0,因此答案是“否”。声明为 long 的函数不能返回 null 或空白。如果零不是您的函数的有效返回值,您可以将其用作“null”等价物,但您已经知道 :)

于 2012-08-06T16:35:53.393 回答