【问题标题】:Word 2003 template with VBA macros that does not run properly in Word 2011 for MAC带有 VBA 宏的 Word 2003 模板在 Word 2011 for MAC 中无法正常运行
【发布时间】:2015-02-25 08:13:30
【问题描述】:

正如标题所说,我有一个包含宏的 Word 模板,在 Office 2011 for MAC 的新 Word 版本中无法正常运行。

似乎无法正常工作的是以下代码:

Sub Document_New()
    myForm.Show
End Sub

Document_Open() 也是如此

在 Mac 版上似乎无法运行此代码。

有谁知道为什么这在 Mac 上不起作用,或者是否有其他方法可以模拟 document_open/document_new 函数?

编辑:文档为 .dot 格式。我试图将它保存到 .doc,然后 Document_open() 工作得很好,所以它似乎不能以 .dot 格式工作。而且 Document_New() 没有在 .doc 中运行,因为它不是基于新的模板文件在文件上..

编辑 2:似乎只有 .doc 文件上的 Document_open 一次。我不能让它再次工作。太奇怪了!我开始工作的唯一事件是 Document_Close(),这仅在使用 .doc 文件格式时 - 这每次都有效......

编辑 3:这越来越奇怪了。我用以下代码制作了一个新的 .doc 文档:

Private Sub Document_Open()
    MsgBox ("BlaBlaBla")
End Sub

只有在我关闭 word 文件并尝试再次打开它之前打开 Visual Basic 编辑器时,代码才会运行。如果我关闭 Visual Basic 编辑器,然后关闭 word 文件,然后打开 word 文件;代码没有运行。

??

【问题讨论】:

  • 您最后的编辑很有意义。只能有一个 VB 运行进程,当启动 VB 编辑器时,您可以控制执行(播放/暂停停止按钮)。因此,如果您在使用活动 VB 编辑器运行 _Open() 事件时遇到问题,那就是原因。所有应用程序 VB 事件都被抑制,因为这意味着意外的代码执行。

标签: macos vba ms-word


【解决方案1】:

如果您激活了 VB 编辑器,并且当前项目未运行,则所有 VB 应用程序事件都会被抑制。这是一种故意行为,以防止不需要的代码执行,因此不可调试。

我使用过 Workbook_Open()(在 Excel 中),我只能在未打开的 VB 编辑器 Excel 应用程序中看到它在新打开的 Excel Xls(2010 年为 xlsm)上工作。 如果您已经打开了其他 doc/xls,它将起作用,但如果 vb-editor 已启动,则不会。

您是否检查过是否允许使用宏?您是否已生成证书并将您的应用设置为可信来源?

【讨论】:

  • 允许使用宏。并且这些事件在工作簿对象上可用。这太奇怪了。现在我只能让 Document_Close() 工作。这仅适用于使用 .doc 文件格式时。
  • 很抱歉,我提到了 Workbook 对象...这是在 Excel 上,而不是 Word。嗯...让我尝试一些事情来检查为什么会发生这种情况,尽管从您的编辑来看,它接缝了一个明确定义的(有意的)行为。
  • 感谢您抽出宝贵时间进行测试!该行为不同于 PC 上的 word 2003/2007。而且我认为没有充分的理由说明为什么需要您在关闭文档之前打开 VB 编辑器才能运行这些事件..?
  • 我同意最后一点很奇怪......这可能与它们阻止代码执行的方式有关(在文件上标记一些东西......)。您是从 word 前端还是从 VB 编辑器保存文档?
  • 我不需要保存它。 VB 编辑器只需要在我关闭文档时打开,以便在下次打开文档时运行代码。无需保存。
【解决方案2】:

我也有类似的问题。似乎 MS 在 Word 2011 的 Word 对象模型中删除了对 Document_New 和 Document_Open 函数的支持。请参阅http://mac2.microsoft.com/vb/1033/Word/html/womscChangesBetweenWord2010and2011.htm

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-17
    • 1970-01-01
    • 1970-01-01
    • 2022-11-03
    • 2015-06-28
    • 1970-01-01
    相关资源
    最近更新 更多