Vb.net 我无法从VB程序访问Excel互操作

Vb.net 我无法从VB程序访问Excel互操作,vb.net,visual-studio,excel-interop,Vb.net,Visual Studio,Excel Interop,我不得不更换我的笔记本电脑。我需要安装的应用程序之一是VisualStudioCommunity2019,因为我依赖于我用VB编写的一些程序。我对2015版的记忆是,我刚刚安装了它。对于2019版,我必须指定需要哪些组件。考虑到有多少组件可用,我可以理解为什么他们不能安装所有组件。我需要访问Excel互操作,并且已经下载了可能允许访问互操作的所有组件,但没有任何明显的成功。语句Imports Excel=Microsoft.Office.Interop.Excel给出错误“{)名称空间Micro

我不得不更换我的笔记本电脑。我需要安装的应用程序之一是VisualStudioCommunity2019,因为我依赖于我用VB编写的一些程序。我对2015版的记忆是,我刚刚安装了它。对于2019版,我必须指定需要哪些组件。考虑到有多少组件可用,我可以理解为什么他们不能安装所有组件。我需要访问Excel互操作,并且已经下载了可能允许访问互操作的所有组件,但没有任何明显的成功。语句
Imports Excel=Microsoft.Office.Interop.Excel
给出错误“{)名称空间Microsoft。在导入“Microsoft.Office.Interop.Excel”中指定的名称空间或类型不包含任何公共成员或找不到。”

搜索帮助时,我发现:“要从Office项目中使用Microsoft Office应用程序的功能,必须使用该应用程序的主互操作程序集(PIA)。”对于我的64位计算机,这些程序集显然应该安装在“%ProgramFiles(x86)%\Microsoft Visual Studio\Shared\Visual Studio Tools for Office\PIA\”中

我发现文件夹“C:\Program Files(x86)\Microsoft Visual Studio\Shared\Visual Studio Tools for Office\PIA\”包含子文件夹“Office14”和“Office15”。每个子文件夹都包含一组不同的PIA。两者都包含“Microsoft.Office.Interop.Excel.dll”Office 14版本日期为2015年3月31日,Office 15版本日期为2015年10月7日


我使用Office版本15。我应该将我想要的PIA从文件夹“PIA\Office15”移动到文件夹“PIA”还是我误解了其他内容?

您可以尝试安装Nuget软件包
Microsoft.Office.Interop.Excel
form
Nuget软件包管理器
。 首先,右键单击项目并选择
管理NuGet软件包…

然后在搜索栏中键入
Microsoft.Office.Interop.Excel
,然后安装:


Kyle Wang的回答让我解决了我的问题。但是,他的图片和描述与我在Visual Studio 2019的体验不同。我怀疑他使用的是早期版本。这个回答记录了我在Visual Studio Community 2019的体验,希望其他人能从我的麻烦中受益

对于我一直使用的Visual Studio 2015,只安装了Visual Studio。对于Visual Studio 2019,还安装了Visual Studio安装程序

如果打开Visual Studio安装程序,我会看到:

如果单击“修改”,我将看到:

如果向下滚动一点,我会看到:

右角的蓝色记号表示我已经安装的工作负载

如果单击各个组件,我会看到:

我不确定下载了哪些组件,因为它们包含在选定的工作负载中,而下载了哪些组件是因为我选择了可能包含我正在寻找的Excel互操作的每个组件。我可能会卸载Visual Studio并重新安装,现在我知道我需要什么了

如果向下滚动足够多,我会看到:

如果我想访问Excel互操作,我肯定需要下载NuGet package manager。我不知道我是否需要NuGet目标和生成任务。如果我重新安装Visual Studio,我将尝试不使用NuGet目标和生成任务,并在需要时将此答案更新为报告。我没有找到任何文档来描述对于这些组件,您似乎需要进行实验,以确定您需要哪些组件

选择所需的工作负载和/或单个组件后,单击右下角的“修改”。执行安装时将显示进度屏幕。安装完成后,关闭Visual Studio Installer

打开Visual Studio 2019,然后创建或打开需要Excel互操作的解决方案。顶行中的第四个选项卡是Project。单击它。下拉菜单中的底部但只有一行是Manage NuGet Packages…。单击它。您将看到:

单击“浏览”以获取:


声称他们拥有2031503个版本的181450个独特的软件包。据我所知,它们是按下载编号的顺序显示的。例如,Newtonsoft.Json已下载3.205亿次。要查找任何特定的软件包,必须使用搜索。搜索“microsoft.office.interop”使用顶部的Excel Interop将列表缩减为可管理的内容。选择所需的软件包,然后单击右侧的安装。

导入语句不会将引用添加到项目中。使用“项目”菜单->添加引用,然后选择“COM”选项卡以选择适当的“Microsoft Excel xx.y对象库”@TnTinMn谢谢您的建议,但我已经尝试了“添加引用”。互操作未列出。列出了许多“Microsoft ActiveX数据对象”引用,但我找不到它们的存放位置。当您说“互操作未列出”时您是说文件“Microsoft.Office.Interop.Excel.dll”不在文件夹C:\Program Files(x86)\Microsoft Visual Studio\Shared\Visual Studio Tools for Office\PIA\Office15中吗?我右键单击依赖项并选择“添加COM引用”。然后单击浏览按钮并转到文件夹C:\Program Files(x86)\Microsoft Visual Studio\Shared\Visual Studio Tools for Office\PIA\Office15并添加了文件Microsoft.Office.Interop.Excel.dll。这对您不起作用吗?安装VSC时,提供的选项数量有限。Interop不在这些选项之列。您必须安装“Manage NuGet packages”并从it提供的数千个包中选择互操作。