高级搜索完成事件未在VBA中触发 [英] Advanced search complete event not firing in VBA

查看:59
本文介绍了高级搜索完成事件未在VBA中触发的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

正如标题所示,我无法启动高级搜索完成事件.我正在通过Excel 2013运行VBA.我有一个在worksheet1中运行的子程序,该子程序创建一个测试对象,然后运行高级搜索.一切正常,搜索对象确实返回结果.但是,高级搜索完成事件永远不会触发.有什么想法吗?

As the title suggests I cannot get the advanced search complete event to fire. I am running VBA through Excel 2013. I have a sub running in worksheet1 which creates a test object which then runs an advanced search. This is all working fine, and the search object does return results. However, the advanced search complete event never fires. Any ideas?

谢谢!

主要代码:

Sub testing()

Dim test As Class1
Set test = New Class1

Call test.TestAdvancedSearchComplete

End Sub

第1类:

Dim myOlApp As New Outlook.Application
Public blnSearchComp As Boolean
Dim sch As Outlook.search
Dim rsts As Outlook.Results



Private Sub myOlApp_AdvancedSearchComplete(ByVal SearchObject As search)
    MsgBox "The AdvancedSearchComplete Event fired."
    blnSearchComp = True
End Sub



Sub TestAdvancedSearchComplete()
Dim i As Integer

blnSearchComp = False
Const strF As String = "urn:schemas:mailheader:subject = 'Test'"
Const strS As String = "Inbox"

Set sch = myOlApp.AdvancedSearch(strS, strF, False, "Test")

While blnSearchComp = False
    DoEvents
Wend

Set rsts = sch.Results
For i = 1 To rsts.Count
    Debug.Print rsts.Item(i).SenderName
Next
End Sub

推荐答案

要允许引发事件,您需要使用 WithEvents

To allow raising events you need to declare your objects with WithEvents

Dim WithEvents myOlApp As New Outlook.Application

这篇关于高级搜索完成事件未在VBA中触发的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆