【问题标题】:"Cannot run the macro (...). The macro may not be available in this workbook or all macros may be disabled."“无法运行宏 (...)。此工作簿中可能没有该宏,或者所有宏都可能被禁用。”
【发布时间】:2019-02-23 23:49:46
【问题描述】:

我需要一些有关“无法运行宏 (...)。此工作簿中可能没有该宏或所有宏都可能被禁用。”的帮助。我尝试了最常见的建议,例如启用宏和编译项目,但没有帮助。

简介:

我创建了一个多年来成功运行的宏(我们称之为旧版本),但最近公司升级到 Office 2016 Professional Plus 并开始出现“下标超出范围错误”。我已经验证并更正了宏 - 原因很简单:新版本的 excel 在新工作簿中创建 1 个工作表,而旧版本创建 3 个工作表。宏试图在不存在的工作表中执行操作。

我已保存更改并发送宏进行测试(新版本)。

宏运行在 Workbook.Open 通过显示一个简单的表格,但新版本没有在客户的计算机上显示该表格。根本没有任何反应。我添加了一个命令按钮,它启动宏并将其发送以进行测试,但按下按钮后再次出现“无法运行宏”消息。我以为代码中可能有错误,但是在我的 PC 上编译并仔细检查所有内容后,我找不到任何错误。因此,我使用单行宏从头开始创建了一个新工作簿:

Sub test() 
MsgBox "macros enabled"
End Sub

令我惊讶的是,在客户端计算机上运行此宏也会返回相同的错误消息。在这一点上,我认为有一些安全设置会阻止运行宏,但是 a) 旧版本的宏正在工作,b) 我已经要求客户端从网上下载一些免费的示例宏,它也可以工作。

补充一点:新版本的宏(显然是 MsgBox 宏)在我的家用电脑 (Office 2013)、我的工作笔记本电脑 (Office 2019) 和我妻子的工作笔记本电脑 (Office 365) 上运行良好。问题只出在客户的机器上。

任何建议将不胜感激。

TL:DR 宏在 Office 2019、2013 和 365 上运行,但在客户端 Office 2016 上返回错误。

【问题讨论】:

  • 可能有帮助:support.office.com/en-us/article/…,如果包含宏的 Excel 文件是从 Internet 或其他不安全区域以某种方式下载的,您可能需要先让客户unblock 该文件。
  • 谢谢,但宏已启用,来自网络的宏工作正常。我分享的没有。
  • 听起来客户的 Office 安装可能需要修复。他们是否只运行一个版本的 Office?或者他们是例如运行 2016 但后来安装了 Access 2010?
  • 您不应依赖“新版本的 excel 在新工作簿中创建 1 个工作表,而旧版本创建 3 个工作表”。这是一个用户设置 - 只要我记得,我的新工作簿就被设置为 1 个工作表。
  • @rene +10 答案(现在是 +9)是可怕的、不合理的建议。弹出MsgBox 不需要启用 VBA 代码来编写和修改正在运行的 VBA 代码。不要勾选该复选框,除非您实际上在 VBA 中进行元编程,或者需要运行这样做的代码。我不敢相信这个答案的投票,OP(这里和那里)与 VBIDE API 没有任何关系。

标签: excel vba


【解决方案1】:

在一次会议期间,当我有机会自己测试它时,结果发现该宏已被他们的邮件服务器防病毒软件删除。所以@rene 怀疑是对的。 谢谢大家的帮助。

【讨论】:

    猜你喜欢
    • 2013-08-25
    • 2021-01-16
    • 1970-01-01
    • 1970-01-01
    • 2017-03-09
    • 1970-01-01
    • 1970-01-01
    • 2015-11-13
    • 2022-07-14
    相关资源
    最近更新 更多