VBA和“;类没有';t支持自动化或不支持期望的接口”;

本文关键字:不支持 自动化 期望 接口 支持 VBA | 更新日期: 2023-09-27 18:19:55

我有一个带有ComVisible类的.NET程序集。几天前(我可以准确地找到那一刻)发生了一件事——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。哪里会有问题?

  • 我检查了几次所有的东西。错误恰好发生在删除某些方法之后
  • 这门课是偏的(也许问题出在这里?)
  • 早些时候一切正常

VBA和“;类没有';t支持自动化或不支持期望的接口”;

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