c# - VBA 和 "Class doesn' t 支持自动化或不支持预期的界面”

标签 c# .net excel vba com

我有带有 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/

相关文章:

c# - 如何执行参数化 SQL 查询(使用带@变量的 LIKE)

C# 将 DLL 限制为只有一个实例

c# - 获取类型的转换器

Excel:基于事件日期的日历翻转效果

c# winforms VS2017 链接 excel : error when closing form

c# - 处理 SignalR .Net 客户端中的异常

c# - 如何使用 Unity 将类型而不是实例注入(inject)构造函数

c# - NHibernate 配置,外键

c# - SemaphoreSlim 没有限制任务

vba - Excel:按钮操作代码 - 为什么我不能使用工作簿和工作表模块