[英]Cannot move email to another folder
下面的行不適用於我的 Sub。 它只顯示添加、應用程序、類、計數等,但並沒有真正提示我使用移動功能。
objItems.Move objDestFolder
以下是其余代碼:
Sub MoveEmail()
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objDestFolder As MAPIFolder
Dim obj As Object
Dim objOL As Outlook.Application
Dim objItems As Outlook.items
Set objOL = Outlook.Application
Set objNS = objOL.Application.Session
'specify the Inbox Folder you want to extract the email
Set objFolder = objNS.GetDefaultFolder(olFolderInbox).Folders("For Processing")
Set objItems = objFolder.items
Set objDestFolder = objNS.GetDefaultFolder(olFolderInbox).Folders("For Temp")
For Each obj In objItems
If obj.Class = olMail Then
objItems.Move objDestFolder
Set obj = Nothing
Set objItems = Nothing
Set objFolder = Nothing
Set objOL = Nothing
Set objDestFolder = Nothing
End If
Next
End Sub
您是在 Items 對象上調用 Move,而不是 MailItem。 如果您正在修改集合,您也不應該使用“for each”。 使用下循環。 將您的代碼更改為
For i = objItems.Count to 1 step -1
set obj = objItems.Item(I)
If obj.Class = olMail Then
obj.Move objDestFolder
End If
Next
不太確定為什么要使用For Each
循環,但是一旦迭代到的對象是郵件項,然后將要迭代的集合變量設置為空?
無論如何,我不相信您可以一次移動整個項目文件夾,因此 IntelliSense 不會為您提供將該方法與對象一起使用的選項。
您需要遍歷文件夾中的每個郵件項目並單獨移動它們。
For Each obj In objItems
If obj.Class = olMail Then
obj.Move objDestFolder
End If
Next obj
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.