在访问 vba 的 excel 文件中未启用显示警报

Posted

技术标签:

【中文标题】在访问 vba 的 excel 文件中未启用显示警报【英文标题】:Display alerts are not enabling in excel file from access vba 【发布时间】:2014-05-14 14:19:04 【问题描述】:

我正在将表格的内容从 access 写入 excel(从 access 打开 excel 文件)写完后,我试图将所有工作簿保存在 appXL 应用程序中。为此,我在保存之前将 DispalyAlerts 设为 false,并在保存后重新打开。将内容写入excel后,我将关闭访问。写完后,当我试图关闭 excel 时,它没有发出任何警报,比如你想保存内容吗?

我的 vba 代码

       Sub Writexl()

       Dim appXL As Excel.Application
       Dim wb As Excel.Workbook
       StrwbPath="C:\temp\sample.xls"

       Set appXL = CreateObject("Excel.Application")
       With appXL
       Set wb = .Workbooks.Open(StrwbPath)
       .Visible = True

       End With

       'here code for writing contents          


        'save workbook after writing

        appXL.Application.DisplayAlerts = False

       For Each w In appXL.Application.Workbooks
       w.Save
       Next w

        appXL.Application.DisplayAlerts = True

       DoCmd.Quit acQuitSaveAll
       Application.Quit
       End sub

【问题讨论】:

你在哪里关闭 Excel?我看到了Application.Quit,但那不是 Excel.Application。另外,我相信如果保存了所有打开的工作簿,则不会显示任何警报。 我没有关闭excel,它仍然按照要求写入后打开。有什么方法可以在保存内容或写入内容后启用显示警报。 警报启用,除非您正在执行其他操作将其关闭。如当前所述,关闭 Excel 时根本不会显示任何警报。保存所有工作簿。没有什么需要提醒您的。 您是否曾在代码完成运行之前停止过代码?还是设置DisplayAlerts = False后出错了? 【参考方案1】:

您正在将DisplayAlerts 设置为应用程序的应用程序

appXL.Application.DisplayAlerts = True

在概念上等同于

Excel.Application.Application.DisplayAlerts = True

因此,正在将父应用程序上的属性设置为 Excel。

试试

appXL.DisplayAlerts = True

【讨论】:

hmmm 但他在将其设置为 False 时也执行了该任务,因此实际上并没有真正设置 Excel.Application.DisplayAlerts = False 开头。所以这个改变虽然是一个很好的建议,但我认为它不是解决方案。 @DavidZemens 真的。你是绝对正确的。 AppXL.Application 是自引用的。我认为它可能是对 Access 的引用......不。事实上,我尝试了 OP 的代码,它似乎可以工作。我认为你的评论是正确的。一切都已保存,无需提醒。 @Brad 感谢您的回复。以前试过,但没有运气。【参考方案2】:

写完后,当我试图关闭 excel 时,它没有给出 任何警报,例如您要保存内容吗?

正如@David Zemens 所说,当您已经保存了所有内容时,为什么它会显示一条消息以保存所有更改。您是否尝试过更改单元格然后退出 Excel?

【讨论】:

以上是关于在访问 vba 的 excel 文件中未启用显示警报的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Excel 2013 中对受保护的工作表启用排序

当关闭文档是excel vba为啥宏代码自动消失

excelvba不能匹配自动补齐

如何显示自定义警报以在 ios 中启用通知

VBA 代码无法在启用宏的文件类型中运行

打开 Excel VBA 2016 .xlsm 文件