You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复VBA中打印ActiveWorkbook.Name时出现的运行时错误91?

问题分析与解决思路

错误根源

虽然测试代码没有显式声明变量,但ActiveWorkbook是Excel的内置对象,当它的引用为Nothing时,就会触发Run-Time error '91'。这种情况仅在特定文件中出现,大概率是该文件的打开状态或属性异常导致的。

排查与解决步骤

  • 关闭受保护视图:邮件附件打开时经常会进入受保护视图,此时Excel会限制VBA对工作簿对象的访问。打开文件后,点击顶部的「启用编辑」按钮,再重新运行测试代码。
  • 替换ActiveWorkbook为ThisWorkbook:ActiveWorkbook依赖当前激活的窗口,若文件未被正常激活(比如后台隐藏打开),就会返回Nothing。改用ThisWorkbook更可靠,它指向代码所在的工作簿:
    Private Sub test()
        Debug.Print ThisWorkbook.Name
    End Sub
    
  • 检查文件信任设置:如果文件被标记为不信任位置,VBA会被限制访问对象。可以将文件移到Excel的受信任位置(文件>选项>信任中心>受信任位置),或者打开文件时在安全警告栏选择「启用内容」。
  • 修复文件损坏:邮件传输可能导致文件轻微损坏,尝试以下操作:
    • 将问题文件另存为新的XLS格式,再测试代码;
    • 新建空白XLS,复制问题文件的所有工作表内容到新文件,再运行宏。

内容的提问来源于stack exchange,提问作者Sabatino Ognibene

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 15:52:08