【发布时间】:2013-12-16 18:18:24
【问题描述】:
我有一个访问 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 版本。
感谢您的帮助...
【问题讨论】:
-
工作簿是否有在打开时触发的宏?您可以尝试在打开工作簿之前添加
excelapp.DisplayAlerts = False。 -
excel 表中是否有任何代码试图保存工作簿?
-
Tim - 不,有宏,但没有通过打开工作簿触发。
-
EngineersMnky - 没有保存代码
-
Tim - DisplayAlerts = false 似乎已经解决了这个问题。谢谢