首页 > 解决方案 > VBA 暗淡对象错误

问题描述

如果我跑

Sub test()

Dim Template_Excel_Instance As excel.application
Set Template_Excel_Instance = CreateObject("excel.application")

End Sub

我的代码因错误“自动化错误,库未注册”而中断

如果我跑

Sub test()

Dim Template_Excel_Instance As object
Set Template_Excel_Instance = CreateObject("excel.application")

End Sub

它运行良好。有没有什么办法解决这一问题?我问的原因是这个问题只影响一台 PC,尽管与所有其他 PC 具有相同的引用。第一个错误不会出现在其他任何地方

标签: excelvba

解决方案


那台电脑有不同版本的 Excel 吗?

问题出在As Excel.Application. 如果您没有定义适当的引用,则 VBA 编译器将无法识别该类型。是的,VBA 确实有一个编译步骤。如果您确实定义了参考,那么这对应用程序版本很敏感(我认为只是应用程序版本的主要部分),因此本质上是不可移植的。

在您的后一个示例中,您使用的是后期绑定,因此只需要注册 COM 对象,而不需要将任何特定库添加到您的项目中。为了便携性,这是要走的路。


推荐阅读