2014-01-15 93 views
0

從示例http://msdn.microsoft.com/en-us/library/office/aa209973(v=office.11).aspx開始,我可以創建以下代碼塊,用於在Outlook收件箱中搜索主題行以特定電話號碼「555-5555」開頭的電子郵件使用「ci_startswith」。搜索電子郵件主題行中的電話號碼

Public blnSearchComp As Boolean 

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

Sub TestAdvancedSearchComplete() 
    Dim sch As Outlook.Search 
    Dim rsts As Outlook.Results 
    Dim i As Integer 
    blnSearchComp = False 
    Const strF As String = "urn:schemas:mailheader:subject ci_startswith '555-5555'" 
    Const strS As String = "Inbox" 
    Set sch = Application.AdvancedSearch(strS, strF) 
    While blnSearchComp = False 
     DoEvents 
    Wend 
    Set rsts = sch.Results 
    For i = 1 To rsts.Count 
     MsgBox rsts.Item(i).SenderName 
    Next 
End Sub 

顯然,如果主題行不具有確切的電話號碼開始,在這種情況下,「555-5555」,搜索沒有找到電子郵件。代替「ci_startswith」,我嘗試使用「like」比較,但是現在無法找到任何匹配,包括使用「ci_startswith」找到的匹配。

Const strF As String = "urn:schemas:mailheader:subject like '555-5555'" 

我是不是正確地使用「like」比較?從我讀過的內容看來,它應該起作用。或者這是一個已知的錯誤/問題?如果是這樣,是否有任何解決方法可以提供更廣泛的搜索能力?

最終,我想使用類似下面的內容來搜索所有可能的電話號碼實例。

Const strF As String = "urn:schemas:mailheader:subject like '###-####'" 

在此先感謝!

---------編輯/添加---------

Public blnSearchComp As Boolean 

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

Sub TestAdvancedSearchComplete() 
    Dim sch As Outlook.search 
    Dim rsts As Outlook.Results 
    Dim i As Integer 
    blnSearchComp = False 
    Const strF As String = "urn:schemas:mailheader:subject LIKE '%###%'" 
    Const strS As String = "Inbox" 
    Set sch = Application.AdvancedSearch(strS, strF) 
    While blnSearchComp = False 
     DoEvents 
    Wend 
    Set rsts = sch.Results 
    For i = 1 To rsts.Count 
     MsgBox rsts.Item(i).SenderName 
    Next 
End Sub 

回答

0

使用「喜歡」你有這取決於如何%字符添加在你的標準時您要搜索

http://msdn.microsoft.com/en-us/library/office/cc513841(v=office.12).aspx

關鍵字等進行前綴字符串,或等值匹配。根據匹配類型,令牌(字符,單詞或單詞)以特定方式包含在%字符中:like'%'提供前綴匹配。例如,限制像'貓%'會匹配「貓」和「目錄」。像'%%'提供了子字符串匹配。例如,限制類似「%cat%」的內容可以匹配「貓」,「目錄」,「kittycat」和「十項全能」。像''提供了等價匹配。例如,限制像'貓'會匹配「貓」和「RE:貓」。

+0

謝謝,iambdot,快速響應!我只是在搜索字符串前後使用'%',並且它仍然沒有找到以前用「ci_startswith」找到的匹配。 – phillip3196772

+0

這篇文章在這裏(http://msdn.microsoft.com/en-us/library/office/aa140155(v = office.10).aspx)正在做你所需要的,應該工作..下面的例子..你也可以發佈你的改變代碼 – iambdot

+0

只需添加最新版本的代碼。如果我用實際的號碼替換標籤,它只會找到那些顯式的號碼。不過,我希望它能找到所有可能的數字實例。 – phillip3196772