How to call macro after Refresh or Refresh All button pressed?

前端 未结 2 1644

Ultimately, I would like to run a macro after anyone refreshes the workbook, specifically using the Refresh button under the Data tab in Excel.

For the time being, I

2条回答
  •  佛祖请我去吃肉
    2020-12-09 05:07

    Source: https://www.excelandaccess.com/create-beforeafter-query-update-events/

    Class: Note: Class Name = clsQuery

    Option Explicit
    
    Public WithEvents MyQuery As QueryTable
    
    Private Sub MyQuery_AfterRefresh(ByVal Success As Boolean)
     If Success Then
      Debug.Print "After ReFresh"
     End If
    End Sub
    
    Private Sub MyQuery_BeforeRefresh(Cancel As Boolean)
     Debug.Print "Before ReFresh"
    End Sub
    

    Module:

    Option Explicit
    Dim colQueries As New Collection
    Sub InitializeQueries()
    
    Dim clsQ As clsQuery
    Dim WS As Worksheet
    Dim QT As QueryTable
    
    For Each WS In ThisWorkbook.Worksheets
     For Each QT In WS.QueryTables
      Set clsQ = New clsQuery
      Set clsQ.MyQuery = QT
      colQueries.Add clsQ
     Next QT
    Next WS
    
    End Sub
    

    ThisWorkbook.Event:

    Private Sub Workbook_Open()
     
     Call InitializeQueries
     
    End Sub
    

提交回复
热议问题