【问题标题】:excel vba prevent message "with references to unsaved documents" when saving保存时excel vba阻止消息“引用未保存的文档”
【发布时间】:2018-10-23 15:34:25
【问题描述】:

我有一个 Excel (2016) 工作簿,用户手动将值从外部链接添加到其他工作簿。

保存工作簿时,我会通过 Workbook_BeforeSave 子中的嵌入宏自动删除链接并仅存储值。

但是,每当保存工作簿时,我都会收到提示:

保存“{filename.xlsm}”并引用未保存的文档?

此消息是多余的,因为我在保存时删除了物理链接。

如果有的话,我该如何隐藏这条消息?

【问题讨论】:

  • 或者试试Application.DisplayAlerts = False
  • 我会将其放入哪个子程序。我已尝试调试 Workbook_BeforeSave 和 BeforeClose,但在显示消息之前两者均未触发。
  • 我会把它放在主要的,就在你调用嵌入宏之前,然后再打开它
  • 删除链接的代码在 Workbook_BeforeSave 子中,因为我希望它仅在用户退出工作簿时应用。当用户从文件菜单中选择 [保存] 选项时调用该过程,但我不知道可以在哪里捕获消息。我能想到的唯一其他解决方案是在工作表中添加一个按钮以保存并通过该按钮对陷阱进行编码。但是,这似乎有点过分和不标准。

标签: excel vba hyperlink external


【解决方案1】:

如果发现任何链接,我不得不求助于额外的 Activex 按钮可见/隐藏。我正在检查 Worksheet_Change 子中是否存在外部链接,并相应地设置 Activex 按钮的 Hidden 属性。

我已将 Activex 链接到一个子节点,该子节点会删除所有链接。

这个模块也是从 Excel [Save] 选项调用的,我已经设置了对 Workbook_BeforeSave 中新子的调用。

在大多数情况下,用户将引用 Activex 按钮,这意味着保存工作簿时将没有链接,因此不会弹出消息。

冗长但有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    • 1970-01-01
    • 2019-04-26
    • 1970-01-01
    相关资源
    最近更新 更多