【问题标题】:VBA and "Class doesn't support Automation or does not support expected interface"VBA 和“类不支持自动化或不支持预期的接口”
【发布时间】:2012-02-07 16:30:04
【问题描述】:

我有带有 ComVisible 类的 .NET 程序集。几天前(我可以通过 git 准确地找到那个时刻)发生了一些事情 - Excel 不再看到这个类。所以:

我有界面

[ComVisible(true)]
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
public interface MyInterface { ... }

和类

[ClassInterface(ClassInterfaceType.None)]
[ComVisible(true)]
[ProgId("MyClass.Id")]
public class MyClass { ... }

Excel 通过

创建实例
Dim c as MyClass
Set c = New MyClass

早些时候,一切都像一个魅力,但在删除一些方法(来自接口和类)之后,Excel 很疯狂 - 它向我显示了一个错误 Class doesn't support Automation or does not support expected interface。哪里有问题?

  • 我检查了很多次。删除某些方法后恰好发生错误
  • 这个类是部分的(也许问题出在哪里?)
  • 早些时候一切正常..

【问题讨论】:

    标签: c# .net excel vba com


    【解决方案1】:

    该死的三遍。对于未来的人:从您的 COM 库中删除方法/属性后,您应该在 Excel 文件中重新添加对 .tlb 文件的引用。

    【讨论】:

    • 我没有删除任何东西仍然出现错误如何解决?
    • @Shrivallabh 好吧,正如我所说 - 在 Excel 工作表中删除和添加对 .tlb 文件的反向引用对我有帮助。不确定这也是你的情况..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-14
    • 1970-01-01
    • 2019-04-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    相关资源
    最近更新 更多