簡體   English   中英

無法將電子郵件移動到另一個文件夾

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM