【问题标题】:Access VBA - Returning some sort of blank/null for function declared as longAccess VBA - 为声明为 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 是的,好点。这是另一种方法。谢谢!

标签: ms-access ms-access-2007 vba


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-29
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-05
      • 2014-02-25
      相关资源
      最近更新 更多