Как отфильтровать элементы sendername из Items_ItemAdd Events?
Private WithEvents Items As Outlook.Items
Private Sub Application_Startup()
Dim Ns As Outlook.NameSpace
Dim Folder As Outlook.MAPIFolder
Set Ns = Application.GetNamespace("MAPI")
Set Folder = Ns.GetDefaultFolder(olFolderInbox)
Set Items = Folder.Items
End Sub
Private Sub Items_ItemAdd(ByVal Item As Object)
If TypeOf Item Is Outlook.MailItem Then
Printattachments Item
End If
End Sub
Я сделал правило, чтобы outlook автоматически печатал любое входящее письмо с вложением, за исключением нескольких писем коллег.
Если я остановлю правило, макрос не будет работать сам по себе (предположим, что так и должно быть, ошибка кода?), Но если правило включено, каждое письмо с вложением будет напечатано дважды.
один с каждой страницей и один только с первой страницей. Есть ли способ обойти это? Пожалуйста, помогите и спасибо заранее!
1 ответ
Используйте метод Items.Restrict (Outlook), чтобы исключить имя отправителя. фильтруя элементы
пример
Private WithEvents Items As Outlook.Items
Private Sub Application_Startup()
Dim olNs As Outlook.NameSpace
Dim Inbox As Outlook.MAPIFolder
Dim Filter As String
Filter = "@SQL=" & " Not (urn:schemas:httpmail:fromname" & _
" Like '%Ming Lian%' Or " & _
"urn:schemas:httpmail:fromname" & _
" Like '%0m3r 0mr%')"
Set olNs = Application.GetNamespace("MAPI")
Set Inbox = olNs.GetDefaultFolder(olFolderInbox)
Set Items = Inbox.Items.Restrict(Filter)
End Sub
Обязательно обновите %Ming Lian%
с правильным именем и теперь вам не нужно правило Outlook
Метод Items.Restrict является альтернативой использованию метода Find или метода FindNext для перебора определенных элементов в коллекции. Методы Find или FindNext работают быстрее, чем фильтрация, если имеется небольшое количество элементов. Метод Restrict значительно быстрее, если в коллекции имеется большое количество элементов, особенно если ожидается, что в большой коллекции будет найдено только несколько элементов.
Фильтрация элементов с использованием сравнения строк, поддерживаемого фильтрами DASL, включает эквивалентность, префикс, фразу и сопоставление подстроки. Обратите внимание, что при фильтрации по свойству Subject префиксы, такие как "RE: " и "FW: ", игнорируются.