Я новичок в программировании VBA в Outlook.
Я пишу макрос, который сканирует почтовый ящик и перемещает электронные письма в указанные c папки, проверяя такие критерии, как тема, отправитель, тело и т. Д. c.
Теперь проблема в том, что когда я l oop через почтовый ящик и приходит новое электронное письмо, l oop ломается.
Первое возможное Решение этой проблемы, которое пришло мне в голову, заключалось в отключении синхронизации электронной почты на время работы макроса. Я изучил это дальше и нашел объект Syn c в Outlook VBA с помощью методов Sync.Start
и Sync.Stop
.
docs Microsoft - метод SyncObject.Start
Итак, я объявил все переменные, как в ссылке, и попробовал код. Кажется, все выполняется без ошибок, I loop through all the sync objects and stop them
, однако я заметил, что электронные письма все равно приходят в мой почтовый ящик.
Public Sub Sync()
Dim nsp As Outlook.NameSpace
Dim sycs As Outlook.SyncObjects
Dim syc As Outlook.SyncObject
Dim i As Integer
Set nsp = Application.GetNamespace("MAPI")
Set sycs = nsp.SyncObjects
For i = 1 To sycs.Count
Set syc = sycs.Item(i)
syc.Stop
Next
End Sub
Мы очень ценим любые идеи, как сделать эту работу, или другие идеи, как решить эту проблему. Спасибо
[РЕДАКТИРОВАТЬ 1, 07.05.2020, 20:29] Спасибо за комментарии, ребята, у меня в голове возникла еще одна идея. Я мог бы создать временную папку, переместить все электронные письма, удовлетворяющие моим критериям, из папки «Входящие» в эту временную папку, отсортировать эти электронные письма в другие папки из этой временной папки. Это должно работать, потому что во временную папку не будут приходить новые электронные письма, в отличие от папки «Входящие»!