我收到错误“应用程序”在命名空间'microsoft.office.interop.excel'中是不明确的

时间:2010-09-01 04:15:17

标签: .net vb.net visual-studio visual-studio-2008 interop

我有一个项目可以打开一个简单的Excel文件并填充它。它工作正常,直到今天早上它突然开始给我上面的错误:'Application' is ambiguous in the namespace 'Microsoft.Office.Interop.Excel'

我没有更改任何项目引用或文件本身内的任何内容。引用包括Microsoft.Office.Interop.Excel。那里的进口声明是:imports Microsoft.Office.Interop

对象声明也是完整的:Dim xl As Microsoft.Office.Interop.Excel.Application这是给我错误的行!

我尝试使用Google搜索此错误,唯一的答案就是我需要将xl声明为Microsoft.Office.Interop.Excel.Application

事实上,我没有更改项目中的任何内容,也没有代码告诉我这是Visual Studio 2008中的损坏。但是,清理和重建项目,重新启动Windows以及重新启动VS都没有效果。

有什么想法吗?

7 个答案:

答案 0 :(得分:6)

我认为你的行不应该是Imports Microsoft.Office.Interop。 使用

Imports Excel = Microsoft.Office.Interop.Excel

然后将其用作:

Dim xl As Excel.Application

或者将Imports全部删除,并在任何地方使用全名,如下:

Dim xl As Microsoft.Office.Interop.Excel.Application

答案 1 :(得分:3)

删除并重新添加引用解决了这个问题。

答案 2 :(得分:1)

遇到同样的问题,并且能够识别问题并解决(注意:我的问题是Outlook,但使用Excel时发生了同样的错误):

  1. 转到项目>>添加参考>>装配>> (搜索Outlook)和UNCHECK所有选中的Microsoft.Office.Interop.Outlook(我已经检查了版本14)。
  2. 转到项目>>添加参考>> COM>> (搜索Outlook)>>检查Microsoft Outlook xx对象库
  3. 执行此操作后,代码" Dim olObject as Outlook.Application"不再拥有“应用程序”。在命名空间中是不明确的Microsoft.Office.Interop.Outlook。

    使用相同的方法解决Excel

答案 3 :(得分:0)

我注意到当您有两个类似的引用时会出现问题,每个引用位于不同的位置。因此,程序无法缩小到您在代码中暗示的那个。

只需转到属性页面并删除其中一个,就可以了。

答案 4 :(得分:0)

我有一个类似的问题,拿起别人已经开始的项目(并且正在为他们工作),事实证明Visual Studio 2010会认为Microsoft Excel 15.0对象库是与Microsoft不同的参考。 Office.Interop.Excel.dll专门。在我的项目中,我不得不删除Microsoft.Office.Interop.Excel.dll并保留Excel 15.0对象库以使其工作。

答案 5 :(得分:0)

创建一个新项目,并从旧项目中复制所有这些命令行,然后转到“添加引用”并重新选择MS互操作。

答案 6 :(得分:0)

运行Microsoft.Office.Interop.Excel的NuGet程序包管理器更新。 之后,我所有的问题都消失了!