【问题标题】:Create Word file from Excel 2011从 Excel 2011 创建 Word 文件
【发布时间】:2011-11-15 16:37:30
【问题描述】:

从 Excel VBA 创建 Word 文档的常用方法:

Set WD = CreateObject("Word.Document")

使用 Excel 2011 运行时会出错。

知道如何使用 VBA 在 Excel 2011 中创建 Word 文档吗?

(我不想使用 AppleScript,因为我希望程序也能够在 PC 上运行。)

【问题讨论】:

  • 欢迎来到 StackOverflow。当你写“导致错误”或“导致异常”这些词时,你应该做的第一件事就是发布“错误”的准确含义或准确 b> 您收到的异常或错误消息。请记住,我们只有您在问题中提供的信息可供参考 - 我们无法从此处看到您的屏幕、代码或错误消息。您提供给我们的信息越多,您获得答案的机会就越大(也就越快)。换句话说,您需要帮助我们帮助您。 :)
  • 这种方法导致我出现内存不足错误,这对我来说毫无意义...在 Mac 上并使用 VBA。

标签: excel vba macos excel-2011


【解决方案1】:

以下代码,根据bretville的建议,似乎可以在mac(在Excel2011上测试)和pc(在Excel2007上测试)上运行,并且可以重复运行,从而允许创建多个Word文件。代码在 Excel2011 (mac) vba 下运行所需的内容是测试 Word 是否已在运行的一种方法。这种方法可能不是最优雅的,但它确实有效。

Dim word As Object
Dim doc As Object
On Error Resume Next
Set word = GetObject(, "word.application") 'gives error 429 if Word is not open
If Err = 429 Then
    Set word = CreateObject("word.application") 'creates a Word application
    Err.Clear
End If
word.Visible = True
Set doc = word.documents.Add

您可以互换这两个 Set word 语句,这似乎更可取,因为在 pc 上运行时不需要处理错误代码,但由于某种原因,代码在 mac 上运行速度非常慢。

【讨论】:

    【解决方案2】:

    对于 PC,我会这样做:

    Dim word As Object: Set word = CreateObject("word.application")
    word.Visible = True
    Dim doc As Object: Set doc = word.documents.Add
    

    【讨论】:

    • 谢谢,@brettville,您的代码在 Excel2011 的第一次运行中运行良好,因此证明应该可以创建 word 文件。但是,第二次运行或 Word 已经打开,语句 Set word = CreateObject("word.application") 在 mac 上给出错误 429(ActiveX 组件无法创建对象),尽管它在 pc 上运行没有问题(Excel 2007 )/罗尔夫
    • 嗯,在Excel VBA for mac,有没有添加引用的能力?
    • 我怎么知道? Excel 2011 vba 没有任何可用(可搜索)的帮助系统!您对这个问题有什么想法?
    猜你喜欢
    • 1970-01-01
    • 2019-12-26
    • 2018-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-23
    相关资源
    最近更新 更多