繁体   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