当不存在连接时,在VBA中处理错误



我正在尝试整理一个执行以下功能的简单宏。

  • 解锁我的密码保护工作表
  • 刷新查询(从网络驱动器上的访问数据库中获取信息(
  • 带密码的锁定表。

我已经输入了一个错误处理程序,以简单地重新封锁电子表格并提示一个消息框。但是,当没有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之后才开始处理错误

最新更新