Access VBA - 为声明为 long 的函数返回某种空白/空值

Posted

技术标签:

【中文标题】Access VBA - 为声明为 long 的函数返回某种空白/空值【英文标题】:Access VBA - Returning some sort of blank/null for function declared as long 【发布时间】:2012-08-06 16:09:11 【问题描述】:

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

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

【问题讨论】:

+1 回答一个有趣的问题! 返回 -1 对你没有帮助吗?它应该超出您的界限 0 和 35。您可以在 excel 上过滤这些值之后。 @j0N45 是的,好点。这是另一种方法。谢谢! 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于Access VBA - 为声明为 long 的函数返回某种空白/空值的主要内容,如果未能解决你的问题,请参考以下文章

access 2010找不到我的VBA函数?

过程声明与 Access-Vba 中具有相同名称的事件或过程的描述不匹配

MS Access VBA - 声明变量时变量未定义错误

如何在 Access VBA 中声明对 ActiveX“ListView”控件的引用?

如何从 Access VBA 中的另一个私有子获取私有子中声明的变量的值

如何创建将传递查询导出为 XML 文件的 VBA 函数(用于 Access 2010)?