在访问 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 文件中未启用显示警报的主要内容,如果未能解决你的问题,请参考以下文章