我有一个访问VBA程序,它打开一个excel文件以便检索一些数据。
Private Function getSampleDescription() As Boolean
' Assign the Excel Object
If gfcHandleErrors Then On Error GoTo errorExit:
getSampleDescription = True
Dim excelapp As Object
Set excelapp = CreateObject("excel.application")
' Assign the workbook
Dim wb As Object
Set wb = excelapp.Workbooks.Open(fileName:=fileName, ReadOnly:=True, Password:=sampleFilePassword)
'Assign the sheet
Dim sh As Object
Set sh = wb.worksheets("Sample Description")
它一直工作正常,但最近(不知道为什么),我得到一个excel提示要求保存,不保存或取消。
这在Workbooks.Open语句之后立即发生。如果我选择保存,我会得到一个提示,将excel表保存到ExcelFilename的副本。保存代码后,继续正常进行。如果我选择不保存代码只是正常进行。如果我选择取消,则会再次出现提示;选择取消第二次中止代码。
知道是什么引起了这个吗?它可以是我的工作簿或工作表上的密码保护。我怎么能让它停下来!
在Windows 7上运行的Access和Excel 2010版本。
感谢您的帮助......
答案 0 :(得分:0)
只需将以下内容添加到VBA代码的最顶层即可。
Application.DisplayAlerts = False
这实际上会阻止任何警报窗口弹出并破坏您的代码。请注意:如果您不想在从中检索数据后保存excel文件,我认为这应该可以正常工作。
答案 1 :(得分:0)
我知道这个问题是3年前提出来的,但似乎没有补充答案。 Excel提示保存文档,因为您的代码执行打开的过程并将文件重新评估为只读,这实际上是文档本身的更改,因此需要保存过程。
Application.DisplayAlerts = False
ChangeFileAccess XlFileAccess.xlReadOnly
Application.DisplayAlerts = True
如前所述,上述代码将禁止显示提示框,但不要忘记在执行特定代码后将其恢复为True,因为可以防止显示其他错误。