Member 13294176 Ответов: 1

Почему мой код не сохраняет никаких писем с определенным почтовым идентификатором?


Всем привет,

Я работаю над автоматизацией VBA, чтобы переместить все электронные письма, содержащие один конкретный почтовый идентификатор, в папку жесткого диска

Ниже приведен код, который я получил до сих пор, но, похоже, он не возвращает мне никаких писем в папках. если кто-нибудь может подсказать, где я ошибаюсь?

Dim OlApp As Outlook.Application
Set OlApp = CreateObject("Outlook.Application")
Dim fldrpath As String
Dim oMails As Outlook.Items
Dim oMail As Object

fldrpath = "\\data\EMAILS\abc@gmail.com"

Dim NS As Outlook.Namespace
Dim Folder As MAPIFolder
Dim Olfolder As Outlook.MAPIFolder

Set NS = OlApp.GetNamespace("MAPI")
Set Olfolder = NS.GetDefaultFolder(olFolderInbox)

' Check subfolder for messages and exit of none found

Set oMails = Olfolder.Items
Set oMail = oMails.Find("[Sendername]= 'abc@gmail.com'")
While TypeName(oMail) <> "Nothing"
oMail.Move fldrpath
Set oMail = oMails.FindNext
Wend


Что я уже пробовал:

Приведенный выше код написан в excel VBA и попытался подключиться к приложению outlook и папке inbox.

Richard Deeming

Вы уверены, что хотите искать по Sendername, и не SenderEmailAddress?

1 Ответов

Рейтинг:
1

Dave Kreskowiak

Мы не можем сказать вам, почему это не работает, потому что у нас нет данных, с которыми работает ваш код. Шансы у вас действительно хорошие .Find call не может найти ничего, что соответствует строке, которую вы ему даете, потому что я действительно сомневаюсь, что в адресе электронной почты есть символы'.

Но просить на форуме других людей рассказать вам, что делает ваш код и с чем он работает, - это не совсем правильно. Правильнее всего запустить код под отладчиком в VBA и изучить содержимое переменных, чтобы понять, что делает код.

Отладчик не предназначен для отладки кода. Он существует для того, чтобы отлаживать вас, и вы понимаете код и среду, в которой он работает.