【问题标题】:UDF returning zero when executing rng.value=""执行 rng.value="" 时 UDF 返回零
【发布时间】:2018-07-14 08:37:31
【问题描述】:

Vba excel 2013 执行 rng.value=""

时返回零
Function Delete_UDF(rng)
    ThisWorkbook.Application.Volatile
    rng.Value = ""
End Function

这是返回零,有人知道为什么吗?

【问题讨论】:

  • 这看起来更像是一个 Sub 而不是 Function。但不管是什么,如果你做不到这一点,你就需要学习最基本的 VBA 基础知识。

标签: excel user-defined-functions vba


【解决方案1】:

您的函数不返回任何内容。您需要添加如下内容:

Delete_UDF = "return value"

【讨论】:

    【解决方案2】:

    您对 Application.Volatile 的使用告诉我您正在工作表上使用此 UDF,而这永远不会在工作表中起作用。

    从工作表调用的 UDF 不能更改该工作表或其他工作表上的任何单元格,除非将值返回到正在使用它的单元格。如果您像 =Delete_UDF(A1) 这样在 A1 中使用它,这将是一个循环引用,因此无法正常工作。

    这将永远不会在工作表上用作 UDF。

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-03
    • 2020-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    相关资源
    最近更新 更多