将电子邮件移动到其他数据/ PST文件

Cod*_*Var 5 email vba outlook-vba outlook-2007

我已经编辑了一个在网上找到的脚本,可以将电子邮件移动到各个文件夹。

我想进一步将电子邮件移动到单独的PST文件中的文件夹中。

这将在Outlook 2007中运行。

该宏源自标题为“ Updated”的此宏,它是较干净的版本:http :
//jmerrell.com/2011/05/21/outlook-macros-move-email

我几乎可以确定此链接可以提供线索,但是我没有经验来正确应用它:http :
//www.slipstick.com/developer/working-vba-nondefault-outlook-folders/

我当前的宏允许将电子邮件移动到PST主“收件箱”文件夹中的3个不同的文件夹位置。

'Outlook VB Macro to move selected mail item(s) to a target folder
Sub MoveToFolder(targetFolder)
On Error Resume Next

Dim ns As Outlook.NameSpace
Dim MoveToFolder As Outlook.MAPIFolder
Dim objItem As Outlook.MailItem

Set ns = Application.GetNamespace("MAPI")

'define path to the target folder; the following assumes the target folder
'is a sub-folder of the main Mailbox folder

'This is the original'
'Set MoveToFolder = ns.Folders("Mailbox").Folders(targetFolder)'
Set MoveToFolder = ns.GetDefaultFolder(olFolderInbox).Folders(targetFolder)


If Application.ActiveExplorer.Selection.Count = 0 Then
    MsgBox ("No item selected")
    Exit Sub
End If

If MoveToFolder Is Nothing Then
    MsgBox "Target folder not found!", vbOKOnly + vbExclamation, "Move Macro Error"
End If

For Each objItem In Application.ActiveExplorer.Selection
    If MoveToFolder.DefaultItemType = olMailItem Then
        If objItem.Class = olMail Then
            objItem.Move MoveToFolder
        End If
    End If
Next

Set objItem = Nothing
Set MoveToFolder = Nothing
Set ns = Nothing

End Sub

Sub MoveToActive()
MoveToFolder ("Active")
End Sub

Sub MoveToAction()
MoveToFolder ("Action")
End Sub

Sub MoveToOnHold()
MoveToFolder ("OnHold")
End Sub
Run Code Online (Sandbox Code Playgroud)

如何配置第四个选项以将电子邮件移动到其他PST中的文件夹?

例如,我想添加一个名为“ Archive”的额外按钮,当单击此特定按钮时,它将把电子邮件移动到单独的PST收件箱中的存档文件夹中。

Sub MoveToArchive()
MoveToFolder ("Archive")
End Sub
Run Code Online (Sandbox Code Playgroud)

nit*_*ton 0

尝试上面代码中注释掉的这种格式。

Sub MoveToFolderInPST(targetFolder)
    '...
    Set MoveToFolderInPST = ns.Folders("name of pst").Folders("Inbox").Folders(targetFolder)
Run Code Online (Sandbox Code Playgroud)