我正在尝试整理一个执行以下功能的简单宏。
- 解锁我的密码保护工作表
- 刷新查询(从网络驱动器上的访问数据库中获取信息(
- 带密码的锁定表。
我已经输入了一个错误处理程序,以简单地重新封锁电子表格并提示一个消息框。但是,当没有Internet连接时,该错误处理程序无效。如果有网络连接,它可以正常工作,例如说我将访问数据库移至与查询中存储的位置不同的位置。
我有一个运行时错误1004:[dataformat.error]您的网络访问被中断。要继续,关闭数据库,然后再次将其打开。
我在做什么错?
Sub RefreshItemTable()
ActiveSheet.Unprotect Password:="password"
Worksheets("Item List").Range("A1").ListObject.QueryTable.Refresh
On Error GoTo connError
DoEvents
ActiveSheet.Protect Password:="password", DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingColumns:=True, AllowFiltering:=True
Exit Sub
connError:
ActiveSheet.Protect Password:="password", DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingColumns:=True, AllowFiltering:=True
MsgBox ("Unable to Connect")
End Sub
使On Error
语句在过程范围中的第一个可执行语句。
您拥有它的方式,您仅在运行 QueryTable.Refresh
之后才开始处理错误。