VBA:将邮件从垃圾邮件移至收件箱

VBA: Move Mail from Junk to Inbox

我正在尝试通过 VBA 代码将所有垃圾邮件移至我的收件箱。不幸的是,我在这一行收到“需要 424 个对象”错误:

    Item.Move (olFLD)

当我尝试将邮件从收件箱移到另一个文件夹时,该代码有效,但当我尝试将邮件从垃圾箱移到收件箱时,它不起作用。

Dim OlNS As Outlook.NameSpace
Dim olFLD As Outlook.Folder
Dim olJunk As Outlook.Folder

Sub Junk()

Set OlNS = Outlook.GetNamespace("MAPI")
Set olFLD = OlNS.GetDefaultFolder(olFolderInbox)
Set olJunk = OlNS.GetDefaultFolder(olFolderJunk)

While olJunk.Items.Count <> 0

For Each Item In olJunk.Items

Item.Move (olFLD)

Next

Wend

End Sub

有人能解答我的问题吗?

提前致谢。

试试不带 ()

Item.Move olFLD

来源:

https://msdn.microsoft.com/en-us/vba/outlook-vba/articles/mailitem-move-method-outlook

vba 中的括号很奇怪。当您从不期望 return 值的对象调用函数时,您将省略括号。

Item.Move olFLD

或者,为了避免混淆何时和何时不使用括号,您可以在函数前面加上 Call

Call Item.Move(olFLD)

阅读更多: What are the rules governing usage of brackets in VBA function calls?