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)
尝试上面代码中注释掉的这种格式。
Sub MoveToFolderInPST(targetFolder)
'...
Set MoveToFolderInPST = ns.Folders("name of pst").Folders("Inbox").Folders(targetFolder)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14763 次 |
| 最近记录: |