Vba RDO会话-循环浏览整个收件箱并移动电子邮件

Vba RDO会话-循环浏览整个收件箱并移动电子邮件,vba,outlook,Vba,Outlook,多亏了在这个网站上提供的出色帮助,我找到了下面的代码——它工作得非常好。我无法(足够尴尬地)弄清楚如何在整个收件箱中循环移动所有电子邮件(而不是像下面的代码那样进行选择) 非常感谢您的帮助。 约翰 在读到你的问题之前,我没有听说过救赎。它看起来很有趣,所以谢谢你提供的信息;下次需要编写新的Outlook宏时,我将尝试使用它 我认为,由于你的问题没有答案,很少有人使用救赎 赎回网站暗示赎回代码的结构将与标准Outlook代码几乎相同。我只记得曾经写过一个宏,它对用户选择的项目进行操作,但我记得代码

多亏了在这个网站上提供的出色帮助,我找到了下面的代码——它工作得非常好。我无法(足够尴尬地)弄清楚如何在整个收件箱中循环移动所有电子邮件(而不是像下面的代码那样进行选择)

非常感谢您的帮助。
约翰


在读到你的问题之前,我没有听说过救赎。它看起来很有趣,所以谢谢你提供的信息;下次需要编写新的Outlook宏时,我将尝试使用它

我认为,由于你的问题没有答案,很少有人使用救赎

赎回网站暗示赎回代码的结构将与标准Outlook代码几乎相同。我只记得曾经写过一个宏,它对用户选择的项目进行操作,但我记得代码看起来像你的。下面的代码是标准Outlook,但我希望这足以让您创建等效的赎回代码

您可以使用宏“注释”
“移动保留了正确日期的选定电子邮件”
。这意味着您认为有一种方法可以移动电子邮件,从而不维护日期。我不知道这样的方法

下面的代码检查收件箱中的每个项目。我不想将所有内容从收件箱中移出,因此跳过了非邮件项目和非特定发件人的项目

我希望这足够让你走了

Sub MoveWithRecDate()

  Dim FolderDest As MAPIFolder
  Dim ItemToBeMoved As Boolean
  Dim ItemCrnt As Object
  Dim FolderSrc As MAPIFolder

  Set FolderSrc = CreateObject("Outlook.Application"). _
              GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
  Set FolderDest = FolderSrc.Parent.Folders("Cabinet")

  For Each ItemCrnt In FolderSrc.Items
    ItemToBeMoved = True   ' Assume item to be moved until discover otherwise
    With ItemCrnt
      If .Class = olMail Then
        If .SenderEmailAddress <> "noreply@which.co.uk" Then
          ' Mail item not from Which
          ItemToBeMoved = False
        End If
      Else
        ' Not mail item so do not move
        ItemToBeMoved = False
      End If
      If ItemToBeMoved Then
        .Move FolderDest
      End If
    End With
  Next

End Sub
submovewithrecdate()
Dim FolderDest作为MAPIFolder
Dim ItemToBeMoved为布尔值
Dim ItemCrnt作为对象
Dim FolderSrc作为MAPIFolder
设置FolderSrc=CreateObject(“Outlook.Application”)_
GetNamespace(“MAPI”).GetDefaultFolder(olFolderInbox)
Set FolderDest=FolderSrc.Parent.Folders(“文件柜”)
对于FolderSrc.Items中的每个ItemCrnt
ItemToBeMoved=True'假定项目将被移动,直到发现其他项目
使用ItemCrnt
如果.Class=olMail,则
If.SenderEmailAddress“noreply@which.co.uk”“那么
'邮件项目不是来自
ItemToBeMoved=False
如果结束
其他的
'不是邮件项目,因此不移动
ItemToBeMoved=False
如果结束
如果要删除项目,则
.移到最远的地方
如果结束
以
下一个
端接头
Sub MoveWithRecDate()

  Dim FolderDest As MAPIFolder
  Dim ItemToBeMoved As Boolean
  Dim ItemCrnt As Object
  Dim FolderSrc As MAPIFolder

  Set FolderSrc = CreateObject("Outlook.Application"). _
              GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
  Set FolderDest = FolderSrc.Parent.Folders("Cabinet")

  For Each ItemCrnt In FolderSrc.Items
    ItemToBeMoved = True   ' Assume item to be moved until discover otherwise
    With ItemCrnt
      If .Class = olMail Then
        If .SenderEmailAddress <> "noreply@which.co.uk" Then
          ' Mail item not from Which
          ItemToBeMoved = False
        End If
      Else
        ' Not mail item so do not move
        ItemToBeMoved = False
      End If
      If ItemToBeMoved Then
        .Move FolderDest
      End If
    End With
  Next

End Sub