【问题标题】:Word macros disappear on transferWord 宏在传输时消失
【发布时间】:2020-12-14 18:13:03
【问题描述】:

我正在使用 Word 2019 并创建了要发送给其他组织的宏。

但是,当我传输文档 (.docm) 或模板 (.dotm) 时,收件人不会获得宏(尽管其他所有内容都会发生)。在 Developer 功能区上,没有宏本身或 VBA 代码的条目。

我知道我可以将宏导出到 *.bas 文件,然后收件人可以导入该文件,但我想直接这样做。
传输 Excel 宏没有问题,但我无法让 Word 工作。 有人可以帮忙吗?

【问题讨论】:

  • 这本身不是一个编程问题。有关 Microsoft Word 的一般用法的问题与 Stack Overflow 无关,应在适当的最终用户论坛上提问。至于问题本身,这很可能与收件人的宏安全设置或您在安装的 Normal 模板中的宏有关,而不是与文档或其模板有关。
  • @macropod 请注意,即使没有直接涉及代码,开发/编码相关问题也可以是on-topic。例如。如果与“程序员常用的软件工具”有关;。我不认为这是题外话,因为它显然与 VBA 开发有关。问题是关于 VBA 代码/编码一般,而不是一般的 Word。

标签: vba ms-word


【解决方案1】:

这很可能有两个可能的原因:

  1. 你真的选择了“Word Macro-Enabled Document”作为文件格式吗?可能是您保存了一个普通的“Word 文档”,文件扩展名为.docm。请注意,文件扩展名没有定义文件格式。

    如果发生这种情况,您实际上有一个 Word 文档(没有宏),但文件扩展名错误 .docm。确保选择正确的格式,而不仅仅是正确的扩展名。

    您可以轻松地对此进行测试:

    • 将文件另存为启用宏的文件docm
    • 完全关闭 Word。
    • 重新打开您的文件。如果宏仍然存在,则说明文件格式正确。
  2. 如果您通过电子邮件发送文件,可能是因为您的收件人不允许接收启用宏的文件,而他的电子邮件服务器正在从 Word 文件中删除宏。

    如果是这种情况,那么您无法采取任何措施来防止这种情况发生。这是接受者的责任。通过这种过滤器的唯一方法是将您的文件打包到受密码保护的 zip 存档中,这样电子邮件服务器就无法访问 Word 文件。但并不是说这样做会违反接收者政策。此外,如果收件人的公司做得对,他们将不允许通过电子邮件发送受密码保护的 zip 存档,因为这可能会通过他们的电子邮件过滤器。

    在这种情况下,最好的解决方案是通过一些云共享(Google Drive、Dropbox、One Drive,等等)提供文件,并且只向收件人发送一个链接。

【讨论】:

  • 我已经取得了一些进展。作为概述,我知道将所有内容都放在 Normal.dotm 中并不是一个好习惯,因此我有一个命名模板。当您在此处显示“宏”对话框时,会出现一个用于显示/保存“宏在:”的下拉列表,我认为“所有活动模板和文档”选项可以,但实际上您必须使用命名模板。我现在可以传输模板并且宏完好无损地到达,但现在我收到一个 VBA 错误,提示“此项目中的宏已禁用”。我无法通过信任中心解决此问题。谁能帮我迈出最后一步?
【解决方案2】:

这是因为您的 AV 阻止宏要保存在您的 PC 中。攻击者过去曾使用过宏,Microsoft 已对其应用了保护。

当您使用宏编辑文档时,word 会创建一个隐藏文件,该文件是您正在运行的宏,现在当您尝试保存该文件时,它会被 AV 捕获。由于 AV 认为这是一种邪恶的活动。它会保存在您的系统上,因为您的目录现在是 Trusted Location 并且没问题。

一种解决方法是安装带有 Microsoft Office 2007 的 Windows 7 以获得您想要的,因为 Windows 7 几乎没有安全性。

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多