從示例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
謝謝,iambdot,快速響應!我只是在搜索字符串前後使用'%',並且它仍然沒有找到以前用「ci_startswith」找到的匹配。 – phillip3196772
這篇文章在這裏(http://msdn.microsoft.com/en-us/library/office/aa140155(v = office.10).aspx)正在做你所需要的,應該工作..下面的例子..你也可以發佈你的改變代碼 – iambdot
只需添加最新版本的代碼。如果我用實際的號碼替換標籤,它只會找到那些顯式的號碼。不過,我希望它能找到所有可能的數字實例。 – phillip3196772