【问题标题】:VBA Excel: Application.DisplayAlerts not working if called from another macroVBA Excel:如果从另一个宏调用,Application.DisplayAlerts 不起作用
【发布时间】:2025-11-24 01:05:02
【问题描述】:

我有一个宏可以打开另一个只读工作簿。为了避免只读警报,我将 Application.DisplayAlerts 属性切换为 False,如下所示

Sub tmp()
Application.DisplayAlerts = False
Debug.Print Application.DisplayAlerts
Workbooks.Open "\\Co-file01\FileName.xlsx"
End Sub

它工作正常,但如果我从另一个宏调用它,像这样

Sub tmp1()
Application.Run "tmp"
End Sub

我仍然收到警报,代码停止工作,等待响应。线

Debug.Print Application.DisplayAlerts 

返回 False,所以看起来属性确实被切换了,但由于某种原因它不适用。

谁能解释它以这种方式工作的原因并提出任何解决方法?

如果重要,我正在使用 Excel 2016 64 位、Windows 7

【问题讨论】:

  • 你应该直接通过它的名字来调用宏:只需在新的一行输入 tmp1,而不是使用 application.run
  • 哇,它有效!非常感谢!

标签: vba excel excel-2016


【解决方案1】:

jkpieterse 提出了答案

您应该直接通过其名称调用宏:只需在 a 上键入 tmp1 换行,而不是使用 application.run

【讨论】: