Access / Excel VBA - 删除显示警报和消息

时间:2015-05-13 18:37:02

标签: excel vba excel-vba ms-access access-vba

我在访问时有一个宏/ vba,可以在编辑后保存多个excel工作簿。但有时其他用户可能正在以读/写模式使用其中一个excel文件。

出现以下消息框,我所做的是一直点击否,直到用户使用完Excel文件

enter image description here

如果文件空闲,请在消息框下面显示,我点击“即读”字样。我的代码从它停止的地方恢复(图片示例)

enter image description here

问题 - 如何使用Access VBA或Excel VBA点击“否”'对我来说?

注意:我已使用Application.DisplayAlertsDoCmd.SetWarnings,默认值为Yes。 (或者可能是我没有正确实现它们。)

代码:

Access/Excel VBA - Time delay

Function RefreshExcelTables()

On Error GoTo Error

Dim ExcelApp As Object
Set ExcelApp = CreateObject("Excel.Application")

ExcelApp.workbooks.Open "c:\test\Test_Sheet1.xlsb"
ExcelApp.ActiveWorkbook.refreshall
ExcelApp.ActiveWorkbook.Save
ExcelApp.ActiveWindow.Close


ExcelApp.workbooks.Open "c:\test\Test_Sheet2.xlsb"
ExcelApp.ActiveWorkbook.refreshall
ExcelApp.ActiveWorkbook.Save
ExcelApp.ActiveWindow.Close


ExcelApp.workbooks.Open "c:\test\Test_Sheet3.xlsb"
ExcelApp.ActiveWorkbook.refreshall
ExcelApp.ActiveWorkbook.Save
ExcelApp.ActiveWindow.Close

Error:

If Err.Number = 1004 Then

call pause(5)

Resume

End If

Set ExcelApp = Nothing


End Function



Public Function Pause(intSeconds As Integer)

Dim dblStart As Double

If intSeconds > 0 Then

dblStart = Timer()

Do While Timer < dblStart + intSeconds

Loop

End If

End Function

2 个答案:

答案 0 :(得分:2)

您可以从以下选项调整开始。

DoCmd.SetWarnings False

更多信息:DoCmd.SetWarnings Method (Access)DoCmd.SetWarnings Method (Access Developer Reference)

对于Excel.Application对象,您可能必须使用该实例的等效项。

ExcelApp.DisplayAlerts = false

Excel DisplayAlerts 的参考文档位于Application.DisplayAlerts Property

答案 1 :(得分:0)

您可以尝试使用Docmd.setwarnings False