【问题标题】:How does the VBA IsMissing function work under the hood?VBA IsMissing 函数如何在幕后工作?
【发布时间】:2021-11-29 12:13:11
【问题描述】:

根据文档:

IsMissing 不适用于简单数据类型(例如 Integer 或 双倍)因为,与变体不同,它们没有规定 “缺失”标志位

但是在tagVARIANT 结构中,我看不到任何关于可以设置的标志的信息,我想知道 vartype 是否像嵌入 ByRef 和 VT_BYREF 一样嵌入此信息(VT_RESERVED 是什么意思?)但是我不确定。

【问题讨论】:

    标签: vba com ole variant


    【解决方案1】:

    missing”变体是一个 VARIANT,其中 vt 成员 (VARTYPE) 设置为 VT_ERRORscode 成员设置为 DISP_E_PARAMNOTFOUND (0x80020004)。

    【讨论】:

    • 链接,DISPARAMS 结构不是仅适用于所有 args 都是变体的 callbyname 等后期绑定代码吗?
    • @Greedo - IsMissing 函数定义:“返回一个布尔值,指示是否已将可选 Variant 参数传递给过程。”。 VT_ERROR + DISP_E_PARAMNOTFOUND 是特殊的“缺失”变量值。 (BTW .NET 当然和这个docs.microsoft.com/en-us/dotnet/framework/interop/…一致)
    猜你喜欢
    • 1970-01-01
    • 2014-11-18
    • 2011-02-17
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多