为什么我会得到;“未定义”;是否在导入Microsoft.Office.Interop.Excel(VB.NET)后仍在所有Excel对象上?

为什么我会得到;“未定义”;是否在导入Microsoft.Office.Interop.Excel(VB.NET)后仍在所有Excel对象上?,vb.net,excel-interop,excel.application,Vb.net,Excel Interop,Excel.application,我有这个密码: 导入Excel=Microsoft.Office.Interop.Excel 公共类FormExcelTest_VB Private Sub ButtonCreateExcelFile_Click( sender As Object, e As EventArgs) Handles ButtonCreateExcelFile.Click Dim xlApp As New Excel.Application Dim xlWorkBook As Excel.Work

我有这个密码:

导入Excel=Microsoft.Office.Interop.Excel

公共类FormExcelTest_VB

Private Sub ButtonCreateExcelFile_Click( sender As Object,  e As EventArgs) Handles ButtonCreateExcelFile.Click
    Dim xlApp As New Excel.Application
    Dim xlWorkBook As Excel.Workbook
    Dim xlWorkSheet As Excel.Worksheet
    . . .
我是从你那儿得到的

但它不编译;我得到:

Type 'Excel.Application' is not defined.
Type 'Excel.Workbook' is not defined.
Type 'Excel.Worksheet' is not defined.
由于不熟悉VB[.NET],我对自己说,“Self,你可能忘了添加一个必需的引用。”但后来我看到解决方案资源管理器中没有该项目的“引用”文件夹(来自C#之地,这对我来说太奇怪了)

当我将鼠标悬停在被拒绝的代码上时,得到的“有用”MSG是:


第一种似乎不是可行的补救办法,而下面的更不是。我怎么知道如何解析(没有双关语)这些未定义的类型?

这对我来说仍然很奇怪,但我发现您可以通过Project>add Reference添加引用

我添加了“MicrosoftExcel12.0对象库”,现在它可以编译了


视图>对象浏览器是查看添加了哪些引用的路径,我猜;C#way对我来说似乎更“友好”了。

奇怪,为什么<代码>办公室互操作不是Visual Studio附带的基本.NET框架的一部分,因此您必须添加相应的库。在代码页顶部编写
Imports
时,您指的是已安装的名称空间。您的代码正在导入不存在的内容,这就是错误的原因。但是,所有这些都应该在您获取代码的地方进行解释。在任何情况下,这都是一个非常基本的问题(每次编写依赖于外部依赖关系的代码时都会发生)。这并不是我说的,这很奇怪-引用没有显示在解决方案资源管理器中,不能从那里添加和查看,这对我来说似乎很复杂。VB默认情况下不会显示所有文件。您需要单击在解决方案资源管理器中显示“所有文件”按钮。我使用的是VS 2012(并且没有更改任何选项),您有多种选择。在解决方案资源管理器中,您可以右键单击项目名称,然后在弹出窗口中单击“添加引用”。在该解决方案资源管理器窗口的下面部分,有两个选项卡“解决方案资源管理器”(当前选择的一个)和“类视图”;如果选择第二个,您将在树视图中看到应用程序的名称,如果打开它,您将看到“引用”。您还可以转到项目属性(返回“解决方案资源管理器”,右键单击并选择“属性”),然后选择“引用”“在LHS上……此外,在上面的菜单中,在“项目”下还有“添加引用”,但我猜这就是您找到的。我认为VB.NET和C#具有完全相同的选项。