0
我正在嘗試創建一個宏,用於將Outlook收件箱中的項目移動到與收件箱位於同一級別的另一個文件夾(即,父文件夾不是收件箱的子文件夾)的子文件夾。這是我使用的代碼:如何將Outlook中的電子郵件移至子文件夾?
Sub EventRequests()
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
Set moveToFolder = ns.Folders("Events").Folders("Event Requests")
If Application.ActiveExplorer.Selection.Count = 0 Then
MsgBox ("Select an E-mail first")
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
當我運行代碼我得到一個錯誤,指出「未找到目標文件夾」!我試過 Set moveToFolder = ns.GetDefaultFolder(olFolderInbox).Folders("Events").Folders("Event Requests")
和Set MoveToFolder = ns.Folders("Mailbox - my name").Folders(targetFolder)
,但都沒有工作。我有一個在我的收件箱郵件移動到我的收件箱中的子文件夾的文件夾不同的宏設置和它工作得很好:
Set moveToFolder = ns.GetDefaultFolder(olFolderInbox).Folders("Completed")
如何解決的目標路徑,使其指向正確的子文件夾?
上的錯誤恢復接下來的一開始是所有編程中最糟糕的錯誤。 http://www.cpearson.com/Excel/ErrorHandling.htm將其移動到剛設置moveToFolder添加On Error GoTo 0.假設「Events」文件夾直接位於郵箱下方。將文件夾樹從默認收件箱導航到Parent,然後到達Events文件夾。 'Set moveToFolder = ns.GetDefaultFolder(olFolderInbox).Parent.Folders(「Events」)。Folders(「Event Requests」)'或者直接在那裏用Set SetToToFolder = ns.Folders(「郵箱名字不是字面上的郵箱 - 我的命名「)。文件夾(」事件「)。文件夾(」事件請求「)' – niton
我應該開頭我的評論:」我不知道我在做什麼,我完全新來這個,我在摸索所以我很樂意接受任何人願意給予的幫助和指導。「我會閱讀錯誤處理,謝謝你的建議! – sparkforce
我也在研究你給我的代碼建議。當我輸入第一個我得到那個說我需要調試「如果moveToFolder.DefaultItemType = olMailItem然後」 – sparkforce