Vba 因为每个人都没有收到所有的电子邮件

Vba 因为每个人都没有收到所有的电子邮件,vba,outlook,Vba,Outlook,我使用for each循环来循环过滤器上的所有电子邮件,但我总是会留下一些电子邮件 我需要多次运行此脚本来清理它 我怎么修理它 Dim objOutlook As Outlook.Application Dim objNamespace As Outlook.NameSpace Dim objSourceFolder As Outlook.MAPIFolder Dim objDestFolder As Outlook.MAPIFolder Dim InboxMsg As Object Dim I

我使用for each循环来循环过滤器上的所有电子邮件,但我总是会留下一些电子邮件

我需要多次运行此脚本来清理它

我怎么修理它

Dim objOutlook As Outlook.Application
Dim objNamespace As Outlook.NameSpace
Dim objSourceFolder As Outlook.MAPIFolder
Dim objDestFolder As Outlook.MAPIFolder
Dim InboxMsg As Object
Dim Inbox As Outlook.Folder
Set objOutlook = Application
Set objNamespace = objOutlook.GetNamespace("MAPI")
Set Inbox = objNamespace.GetDefaultFolder(olFolderInbox)
Dim myRestrictItems As Outlook.Items
 Dim filter As String

'Set Items = Inbox.Items
  filter = "[SenderEmailAddress] = 'tmeadmin@dm5cbs.on.rogers.ca'  or [SenderEmailAddress] = 'tmeadmin@dm5cbr.on.rogers.ca'" _
  & "or [SenderEmailAddress] = 'tmeadmin@dcobyj-030.qc.rogers.ca'" _
  & "or [SenderEmailAddress] = 'tmeadmin@dmobeo-030.on.rogers.ca'"
 Set myRestrictItems = Inbox.Items.Restrict(filter)
 MsgBox (myRestrictItems.Count)
 Set MoveToFolder = objNamespace.Folders("archive").Folders("INBOX").Folders("rogers_ALERTS")
 For Each mail In myRestrictItems
 mail.Move (MoveToFolder)
 Next


End Sub

当然-您正在迭代器中修改集合。使用向下“for”循环从倒计时到1(步骤-1)

使用(例如)
for x=myRestrictItems在集合中向后循环。计数到1步骤-1
,然后像
myRestrictItems(x)一样移动。移动
示例-