相关疑难解决方法(0)

VBA 中的 VSTO:AddIn.Object 有时不返回任何内容(空)

鉴于:

  • VSTO 插件
  • Anoverride object RequestComAddInAutomationService()返回Facade在我的场景中调用的类的实例。
  • Excel 2007 中的 VBA 宏,它访问AddIn.Object以获取 Facade 并使用它。
  • 很多时候这工作得很好。
  • 有几次出乎意料,这似乎不起作用。

更新:原来是特定用户有问题。她一直都有,别人从来没有(?永远不要说“从不”)

在这“几次”中,我得到

错误:对象变量或未设置块变量

在试图访问Facade. 简而言之,我可以告诉您,其中的代码RequestComAddInAutomationService()没有任何容易出错的魔法,而且用于访问加载项的 VBA 代码也取自网络,看起来也不错。更长的版本尚未推出,对于那些花时间阅读它的人:-)

问题:有没有人知道为什么会发生这种情况?是Excel问题吗?


承诺的细节:

我的插件.cs:

public partial class MyAddIn
{
    public Facade Facade { get; private set; }

    protected override object RequestComAddInAutomationService()
    {
        if (this.Facade == null)
            this.Facade = new Facade(Controller.Instance);

        return this.Facade;
    }
}
Run Code Online (Sandbox Code Playgroud)

Facade.cs:

[ComVisible(true)]
[Guid("1972781C-A71A-48cd-9675-AE47EACE95E8")]
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
public interface IFacade
{
    // some methods
}

[ComVisible(true)]
[ClassInterface(ClassInterfaceType.None)]
public …
Run Code Online (Sandbox Code Playgroud)

c# vba vsto excel-2007 .net-3.5

5
推荐指数
1
解决办法
3750
查看次数

标签 统计

.net-3.5 ×1

c# ×1

excel-2007 ×1

vba ×1

vsto ×1