我有带有 ComVisible 类的 .NET 程序集。几天前(我可以通过 git 准确地找到那个时刻)发生了一些事情——Excel 再也看不到这个类了。所以:
我有接口(interface)
[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
之前一切都运行良好,但是在删除一些方法(来自接口(interface)和类)之后,Excel 变得疯狂了——它向我显示了一个错误类不支持自动化或不支持预期的界面
。哪里会出问题?
- 我检查过所有的东西。恰好在删除某些方法后出现错误
- 这个类是部分的(也许问题出在这里?)
- 早些时候一切正常..
最佳答案
该死的三遍。对于 future 的人:从 COM 库中删除方法/属性后,您应该在 Excel 文件中重新添加对 .tlb 文件的引用。
关于c# - VBA 和 "Class doesn' t 支持自动化或不支持预期的界面”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8817215/