首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BeforeRefresh和AfterRefresh不工作

BeforeRefresh和AfterRefresh不工作
EN

Stack Overflow用户
提问于 2017-06-30 19:56:24
回答 1查看 563关注 0票数 0

我是VBA新手,我正在尝试用以下代码触发BeforeRefresh和AfterRefresh事件:

在一个名为clsQuery的类模块下,我有:

代码语言:javascript
复制
Option Explicit
Public WithEvents MyQuery As QueryTable

Private Sub MyQuery_AfterRefresh(ByVal Success As Boolean)
If Success Then MsgBox "Query has been refreshed."
End Sub

Private Sub MyQuery_BeforeRefresh(Cancel As Boolean)
If MsgBox("Refresh query?", vbYesNo) = vbNo Then Cancel = True
End Sub

然后在模块下面,我有:

代码语言:javascript
复制
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
MsgBox ("Works")

End Sub

最后,在Microsoft Excel对象下,我有一个名为ThisWorkbook的选项卡:

代码语言:javascript
复制
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
MsgBox ("Works")

End Sub 

因此,当我第一次打开excel文件时,消息框出现并显示“有效”。但是,当我尝试刷新数据时,刷新前和刷新后的消息框不会出现。任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2017-06-30 20:23:53

像这样的东西应该会对你有所帮助。没有太大的不同,但添加了一个集合。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44845922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档