【问题标题】:Alias for Microsoft.Office.Interop.Word namespace not recogizedMicrosoft.Office.Interop.Word 命名空间的别名无法识别
【发布时间】:2014-01-21 13:40:15
【问题描述】:

这是我在 Form1.vb 中的代码:

Imports Word = Microsoft.Office.Interop.Word

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles Button1.Click

    Dim oWord As Word.Application
    Dim oWord1 As Microsoft.Office.Interop.Word.Application
    Dim oWord2 as Application

我正在使用 VStudio2012 和 Office 2010 并遵循来自 https://support.microsoft.com/kb/316383 的示例

oWord 的声明被 intellisense 标记为“类型 'Word.Application' 未定义,
oWord1oWord2 被接受。 Intellisense 提供了几个纠错选项——其中两个我已经尝试过(oWord1 和 oWord2)——其他选项似乎并不适用。

简而言之,我很困惑为什么在 Imports 语句中使用命名空间别名 Word 不满足知识库文章中描述的语法 Dim oWord As Word.Application。在项目属性对话框中是否有一些“主旋钮”可以打开?

【问题讨论】:

  • 您是否尝试将别名重命名为不同于命名空间最后一叶的名称? Imports WD = Microsoft.Office.Interop.Word 之类的东西?
  • 从我所见 Imports Word = Microsoft.Office.Interop.Word 不存在广告参考中对 Microsoft.Office.Interop.Word 的引用,然后声明 Imports Microsoft.Office.Interop.Word
  • 史蒂夫,我刚刚尝试了你的建议。有用。那么,我是否认为别名不能与命名空间的“最后一片叶子”相同?显然,它以前是好的语法,但现在不是?我可以忍受 Word 中代码的快速全局更改。到WD。但有什么想法吗?
  • 并非如此,这只是我想到的想法之一。快速检查,所以你试试。他们最终是正确的。
  • 您自己当前命名空间的最后一片叶子是“Word”吗?在那种情况下,我遇到了类似的问题。

标签: vb.net visual-studio namespaces ms-word office-interop


【解决方案1】:

您需要添加一个引用来导入此命名空间的 DLL。在Visual Studio 2012 中,在您的解决方案资源管理器中右键单击项目名称> 单击“添加引用”> 选择“程序集”>“扩展”>“Microsoft.Office.Interop.Word”。互操作库可能有多个版本(Office 2003、2007、2010 等),请选择合适的版本。

我相信这些程序集最初是在您从 DVD 安装 Microsoft Office 时安装的。所以我相信你需要安装 Word。

编辑:这对我有用,使用 Intellisense:

Imports Word = Microsoft.Office.Interop.Word
Module Module1
    Sub Main()
        Dim oWord As Word.Application
    End Sub
End Module

【讨论】:

  • 是的,参考是我根据知识库文章添加的第一件事。因此,添加了 Microsoft Word 14.0 对象库;路径是 C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Word\14.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Word.dll
  • 好的,我认为一个简单的解决方案可能会奏效。如果有帮助,我会在我的 VS2012 上使用 Office 2010 测试您的代码,declaration of oWord 确实对我有用。 Intellisense 也在工作。我试图故意弄乱命名空间,但我无法让它复制你的问题。
  • @John:知识库文章是关于旧版本的 .NET Framework 和 Office,其中的工作方式截然不同。在 VS 2012 中,您通常会确保您的目标是更新的框架(我应该认为是 4.0 或 4.5),然后从 .NET 选项卡而不是 COM 选项卡中选择对 Microsoft.Office.Interop.Word 的引用。过去我的结果和你一样,非常令人困惑。
  • 在 VS 2013 中,它在 express-version 中丢失。
【解决方案2】:

我使用了“导入 Microsoft.Office.Interop”而不是“导入 Word = Microsoft.Office.Interop.Word”,它运行良好

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-07
    • 2019-12-19
    • 2018-03-21
    • 1970-01-01
    • 2011-10-05
    • 2015-02-17
    • 2018-02-20
    • 1970-01-01
    相关资源
    最近更新 更多