类不支持自动化(错误 430)

不是所有对象都会公开一个自动化接口。 此错误具有以下原因和解决方案:

  • The class you specified in the GetObject or CreateObject function call was found, but has not exposed a programmability interface.

    您不能写入代码以控制对象的行为,除非它已公开了"自动化"。 检查创建该对象的应用程序的文档,以获得此类对象的自动化使用的限制。

  • 您将项目从 .dll 更改为了 .exe,或从 .exe 更改为了 .dll。 例如,如果您已经编译并注册了 .dll 服务器,然后您将该项目类型更改为了 .exe,并重新进行编译,那么已在系统上注册了 .dll 和 .exe 的事实将会阻止您创建任何对象。 您必须手动注销旧的 .dll 或 .exe 以避免该问题。 这是由项目的兼容性和将项目从 .exe 更改为 .dll 一起造成的。 在项目兼容性中,保留了 CLSID,没有保留 IID。 由于保留了 CLSID,该类最后登录了两个服务器 — 一个为处于处理状态的服务器,一个为本地服务器。 当创建了实例了,选择处于处理状态的服务器。 当查询接口时,.dll 不支持 IID,因为它是新的。

有关其他信息,选择有问题的项并按 F1(在 Windows 中)或 HELP(在 Macintosh 上)。

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。