我有一个Access文件,该文件使用链接到Excel文件的表,而Excel文件本身具有其他需要刷新的链接。
(请不要怀疑它的逻辑,这是解决一些棘手问题的一种解决方法,这是目前唯一的解决方法,因为访问不能使用.odc连接)
我在访问表单中有一个按钮,应该更新数据。但是,当该button_onclick
子项打开Excel时,它始终以只读方式打开它,因此在尝试保存文件时会中断。我该如何预防?
我已经尝试过AppExcel.AlertBeforeOverwrite = False
并在ReadOnly
false上输入参数,Workbook.Open
但仍然会发生。
代码如下;
Private Sub btnUpdate_Click()
Dim AppExcel As Excel.Application
Dim wbConn As Excel.Workbook
Set AppExcel = CreateObject("Excel.Application")
AppExcel.Visible = True
Set wbConn = AppExcel.Workbooks.Open("Z:\Company Records\System Files\Connection Data.xlsx", True, False) 'Note that last parameter, Readonly = False
With wbConn
.RefreshAll
'Debug.Assert False
AppExcel.AlertBeforeOverwriting = False 'This doesn't work
.Save 'BREAKS HERE - message boxes in Excel because the file is Read-only
.Close
End With
Set wbConn = Nothing
Set AppExcel = Nothing
End Sub
尝试添加 IgnoreReadOnlyRecommended:=True
Set wbConn = AppExcel.Workbooks.Open("YourFilePath", True, False, IgnoreReadOnlyRecommended:=True)
如果不起作用,请直接尝试:
Set wbConn = AppExcel.Workbooks.Open("YourFilePath", True, IgnoreReadOnlyRecommended:=True)
另一种解决方案是始终.SaveAs
使用文件而不是使用文件.Save
,您可以更改文件名或ConflictResolution
覆盖现有文件
.SaveAs Filename:="YourFilePath", ConflictResolution:=Excel.XlSaveConflictResolution.xlLocalSessionChanges
AppExcel.DisplayAlerts = False
如果您要避免覆盖文件可能导致的提示消息,建议您添加到代码的开头
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句