簡體   English   中英

將已讀項目從文件夾移回收件箱

[英]Moving read items from a folder back to inbox

我是 VBA 新手,正在尋找一種方法將已讀電子郵件從名為“ForApproval”的文件夾移回收件箱。 Stack上找到了這段代碼,它工作得很好,但是當我嘗試反轉源和目標並將我的文件夾名稱放入時 - 我得到:運行時錯誤“424”:需要對象(見下面的截圖)

有人可以快速瀏覽一下並說出這里有什么問題嗎?

原始代碼:

    Sub ReadMailMover()

    Set objOutlook = CreateObject("Outlook.Application")  

    Set objNamespace = objOutlook.GetNamespace("MAPI")  

    **Set objFolderSrc = objNamespace.GetDefaultFolder(olFolderInbox)**

    **Set objFolderDst = objFolderSrc.Parent.folders("__Reviewed")**  

    Set colitems = objFolderSrc.Items  

    Set colfiltereditems = colitems.Restrict("[UnRead] = False")  

    For intMessage = colfiltereditems.Count To 1 Step -1  

    colfiltereditems(intMessage).Move objFolderDst  

    Next  

    End Sub 

我的反向版本:

Sub ReadMailMover()

Set objOutlook = CreateObject("Outlook.Application")

Set objNamespace = objOutlook.GetNamespace("MAPI")

**Set objFolderSrc = objFolderSrc.Parent.Folders("ForApproval")**

**Set objFolderDst = objNamespace.GetDefaultFolder(olFolderInbox)**

Set colitems = objFolderSrc.Items

Set colfiltereditems = colitems.Restrict("[UnRead] = False")

For intMessage = colfiltereditems.Count To 1 Step -1

colfiltereditems(intMessage).Move objFolderDst

Next

End Sub

在此處輸入圖片說明

我得到的運行時錯誤

在反向代碼中,當您初始化變量objFolderSrc 時,它包含對自身的引用。

Set objFolderSrc = objFolderSrc.Parent.Folders("ForApproval")

此時objFolderSrc未初始化。 它不引用任何東西。 因此,它不能用於定義位置。

試試這個:

Set objFolderSrc = application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Parent.Folders("ForApproval")

這里循環引用已被替換。 您的源文件夾是通過收件箱引用的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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