我正在使用VBA开发Excel(2010+)应用程序,并遇到一个问题,一旦查询完成执行,就不会调用AfterRefresh事件函数.
我无法找到许多有关如何在类模块中触发此事件功能的合适资源或文档.我决定使用类模块设计路线,而不是在收到有关QueryTables的早期问题(在此处找到Excel VBA AfterRefresh)的响应后,将事件处理程序放在工作表中.
这是我的类模块的代码,称为CQtEvents
Option Explicit
Private WithEvents mQryTble As Excel.QueryTable
Private msOldSql As String
' Properties
Public Property Set QryTble(ByVal QryTable As QueryTable): Set mQryTble = QryTable:
End Property
Public Property Get QryTble() As QueryTable: Set QryTble = mQryTble:
End Property
Public Property Let OldSql(ByVal sOldSql As String): msOldSql = sOldSql:
End Property
Public Property Get OldSql() As String: OldSql = msOldSql:
End Property
Private Sub Class_Initialize()
MsgBox "CQtEvents init"
End Sub
' Resets the query …Run Code Online (Sandbox Code Playgroud)