Макрос VB только перемещает половину моих прочитанных электронных писем - PullRequest
0 голосов
/ 12 октября 2018

У меня есть макрос в myOutlook, который перемещает прочитанные письма из папки «Входящие» в папку «Чтение».Вот код:

    Private Sub no_Click()
    Unload Me
End Sub

Private Sub yes_Click()
    On Error Resume Next
        Set oOutlook = CreateObject("Outlook.Application")
        Set oNameSpace = oOutlook.GetNamespace("MAPI")
        Set oFolderSrc = oNameSpace.GetDefaultFolder(olFolderInbox)
        Set oFolderDst = oFolderSrc.Folders("Read")
        Set oFilteredItems = oFolderSrc.Items.Restrict("[UnRead] = False")
                For Each oMessage In oFilteredItems
                    oMessage.Move oFolderDst
                Next
End Sub

Но, когда я запускаю макрос, он копирует только половину моих писем.Пример: у меня в почтовом ящике 500 писем.Когда я запускаю макрос, он оставляет 250 писем в моем почтовом ящике.Когда я запускаю его снова, он оставляет 125 писем, и так далее, и так далее.

Что я здесь не так делаю?

1 Ответ

0 голосов
/ 12 октября 2018

Попробуйте это:

For index = oFilteredItems.Count to 1 Step -1
    oFilteredItems.Item(index).Move oFolderDst
Next

Я подозреваю, что перемещаемый объект портит For Each

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