【问题标题】:Is `Range.Formula` a COM object?`Range.Formula` 是 COM 对象吗?
【发布时间】:2016-05-01 21:39:43
【问题描述】:

也就是说我需要用Marshal.ReleaseComObject() 释放它吗? 我知道Range 是并且需要发布,但我不确定Formula

【问题讨论】:

    标签: excel add-in com-interop excel-interop addin-express


    【解决方案1】:

    在 Excel 对象模型中,Formula 是字符串,而不是对象。

    Excel VBA 中的一个简单测试:

    Sub test()
        Dim R As Variant
        Set R = Range("A1")
        Debug.Print TypeName(R)
        Debug.Print TypeName(R.Formula)
    End Sub
    

    打印出来:

    Range
    String
    

    【讨论】:

    • 谢谢。我想我很困惑,因为在 addin express 中返回的值类型是 Object,而在 VBA 对象浏览器中,类型是 Variant。是否有可能它在 VBA 中显示为字符串但在交互操作中被包裹在一个对象中?
    • @Mr1159pm 我真的不知道当你使用互操作时会发生什么样的包装。如果点网字符串是一个对象,而 VBA 字符串不是,那么你可能是对的,这样的事情继续发生,但即使这样我也不认为公式属性是某种单独的对象,不会当父范围对象被释放时被垃圾回收。
    猜你喜欢
    • 2012-10-02
    • 1970-01-01
    • 2019-11-10
    • 2010-12-11
    • 2010-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-25
    相关资源
    最近更新 更多