Переместить электронные письма в другой файл данных/PST


3

Я отредактировал сценарий, который я нашел в Интернете, чтобы переместить электронную почту в различные папки.

Я хочу сделать еще один шаг для перемещения электронных писем в папку в отдельном файле PST.

Это будет работать в Outlook 2007.

Макрос проистекает из этого макроса, который называется «Обновленный» и является уборщик версия:
http://jmerrell.com/2011/05/21/outlook-macros-move-email

Я почти уверен, что это ссылка держит ключ, но у меня нет опыта, чтобы применить его правильно:
http://www.slipstick.com/developer/working-vba-nondefault-outlook-folders/

Мой текущий Macro позволяет письма перенести в 3 разных местах папки внутри основной PST складку «Входящие» э.

'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 

Как настроить 4-ый вариант, чтобы переместить письмо в папку в другой PST?

Например, я хотел бы добавить дополнительную кнопку под названием «Архив», и когда эта кнопка будет нажата, она переместит электронное письмо в папку архива в отдельной папке «Входящие» PST.

Sub MoveToArchive() 
MoveToFolder ("Archive") 
End Sub 
0

Пробуйте этот формат, прокомментированный в коде выше.

Sub MoveToFolderInPST(targetFolder) 
    '... 
    Set MoveToFolderInPST = ns.Folders("name of pst").Folders("Inbox").Folders(targetFolder) 
  0

Спасибо за помощь. Извините мой статус новичка, но можете ли вы помочь мне лучше понять, где разместить этот код, и если ему нужно заменить другую часть кода? Я попробовал несколько разных сценариев, и когда я нажимаю, он ничего не делает. «Имя pst» должно быть полным именем, как в «archive.pst», и если я хочу, чтобы он перешел во вторичную папку, расположенную в папке «Входящие», вы можете понять, как это сделать ? Моя цель состоит в том, чтобы сохранить существующие кнопки, работающие как внутри основного Data PST, а затем добавить дополнительную кнопку для архива. Я ценю помощь! 01 ноя. 132013-11-01 20:53:05

  0

Удалить после ошибки. Скопируйте весь код, заменив все экземпляры MoveToFolder на MoveToFolderInPST. Имя pst - это то, что вы видите в навигационной панели. Sub MoveToArchive() MoveToFolderInPST ("Архив") End Sub 01 ноя. 132013-11-01 23:21:40