我有一个项目可以打开一个简单的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都没有效果。
有什么想法吗?
答案 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时发生了同样的错误):
执行此操作后,代码" 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程序包管理器更新。 之后,我所有的问题都消失了!