我已经阅读了很多其他帖子(特别是this),甚至试图复制一些,我不会错误 .

我正在尝试在电子表格刷新后运行一个函数 . 似乎我不得不乱用查询表,但如果有某种方法我可以避免这种情况,请告诉我 . 我附上了我认为相关的代码片段(虽然我可能错过了一些) .

我得到的错误是运行时错误:'9'下标超出范围

“这个工作簿”中的代码

Dim qtevent As qtClass

    Private Sub Workbook_Open()

    Set qtevent = New qtClass
    Set qtevent.HookedTable = ThisWorkbook.Worksheets("REFRESH SHEET").ListObjects(1).QueryTable
    MsgBox "Qt Events Run"

    End Sub

类qtClass中的代码

Option Explicit

    Private WithEvents qt As Excel.QueryTable
    Public Property Set HookedTable(q As Excel.QueryTable)
        Set qt = q
    End Property

    Private Sub qt_AfterRefresh(ByVal Success As Boolean)

    MsgBox "qt_AfterRefresh called sucessfully."
    If Success = True Then
        MsgBox "If called succesfully."
    End If

    End Sub