我在访问时有一个宏/ vba,可以在编辑后保存多个excel工作簿。但有时其他用户可能正在以读/写模式使用其中一个excel文件。
出现以下消息框,我所做的是一直点击否,直到用户使用完Excel文件
如果文件空闲,请在消息框下面显示,我点击“即读”字样。我的代码从它停止的地方恢复(图片示例)
问题 - 如何使用Access VBA或Excel VBA点击“否”'对我来说?
注意:我已使用Application.DisplayAlerts
和DoCmd.SetWarnings
,默认值为Yes
。 (或者可能是我没有正确实现它们。)
代码:
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
答案 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