无法转换类型为' Microsoft.Office.Interop.Excel.ApplicationClass'的COM对象接口类型' Microsoft.Office.Interop.Excel._Application'

时间:2017-01-10 06:35:18

标签: excel vb.net

我收到的错误很像 无法转换类型的COM对象  ' Microsoft.Office.Interop.Excel.ApplicationClass'接口类型' Microsoft.Office.Interop.Excel._Application'。  此操作失败,因为查询接口调用COM组件上的IID' {000208D5-0000-0000-C000-000000000046}'  由于以下错误而失败:加载类型库/ DLL时出错。 (来自HRESULT的异常:0x80029C4A(TYPE_E_CANTLOADLIBRARY))。

异常获取当我尝试在vb.net中打开应用程序时。 我试图重新安装excel,但没有成功,如果有人可以帮助我,请欣赏它

3 个答案:

答案 0 :(得分:2)

在删除1.9下的注册表项后,我的问题已解决 开始->运行->注册表编辑-> HKEY_CLASSES_ROOT-> TypeLib-> {00020813-0000-0000-C000-000000000046}-> 1.9

答案 1 :(得分:1)

我有同样的问题,我搜索了几天的解决方案。今天我发现它,也许可以帮助你(我删除1.9并离开1.8)

如果这不是与代码相关的错误,请从注册表中删除以下给定的密钥。

步骤:

开始 - >运行 - >注册表 - > HKEY_CLASSES_ROOT - > TypeLib - > {00020813-0000-0000-C000-000000000046} - > 1.8 / 1.7(删除此)

解决方案:可以通过删除较高版本的Office遗留的无效注册表项来解决此问题。按照上述步骤操作。

原因:如果您已将Microsoft Office版本从Office 2010降级到Office 2007或Office 2013降级到Office 2010或2007,则此问题是由遗留的注册表项引起的。

如果此解决方案对您没有帮助,请告诉我

LINK

unable to cast COM object of type 'microsoft.Office.Interop.Excel.ApplicationClass' to 'microsoft.Office.Interop.Excel.Application'"

LINK

答案 2 :(得分:1)

错误可能表明它无法加载DLL,但是如果您尝试加载问题所在的Excel。

对于某些人,可以通过“添加\删除程序”进行简单的Office修复:“修改”足以解决问题。

如果您已经尝试过Office修复,则可以通过编辑注册表来手动修复它。

以管理员身份打开Regedit,然后转到:

Computer\HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\

这是显示Excel安装位置的位置。此时,如果看到多个版本,“ 1.9”,“ 1.8”,“ 1.7”,则需要删除多余的条目。例如,Excel 2019为“ 1.9”,因此,如果要删除不再安装的较低版本。

一旦只有一个版本,您还需要检查位数。我已经从32位迁移到64位,但是两个键仍然存在

Computer\HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.9\0\Win32
Computer\HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.9\0\Win64

我删除了Win32密钥,然后一切又开始正常工作。在这些键中,默认值显示“ EXCEL.EXE”的完整路径。确保路径正确。