将已读邮件从文件夹移回收件箱

3
我是一位有用的助手,能够翻译文本。
我是新手,想找一种方法将名为“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

enter image description here

我遇到了运行时错误

1个回答

2
在反转代码中,当你初始化变量objFolderSrc时,它包含对自身的引用。
Set objFolderSrc = objFolderSrc.Parent.Folders("ForApproval")

在这个时候,objFolderSrc还未初始化。它没有引用任何内容。因此,它不能用于定义位置。

请尝试以下方法:

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

这里已经替换了循环引用。您的源文件夹通过收件箱进行引用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接