如何使用VBA将多个附件从多个电子邮件保存到我的桌面?

时间:2016-11-14 16:53:23

标签: vba excel-vba outlook excel

我是编码新手,并且一直在使用VBA和SQL。我无法编写或找到我需要的代码。我希望代码在excel中的macor按钮中。代码需要能够搜索我的Outlook电子邮件并找到三封电子邮件(这三封电子邮件每天都有相同的主题,只是主题中的不同日期)。然后,代码需要能够将电子邮件中的附件保存在桌面上。我想知道这是否可能通过VBA?我在这里查看了代码并看到了一些示例,但是我遇到了多个错误。我只是在寻找一个基本框架,然后我可以用它进行调整和构建。很抱歉非常入门级的问题和帖子没有示例代码,但就像我说我是全新的。

感谢所有帮助。

2 个答案:

答案 0 :(得分:0)

我将以下代码与outlook规则一起使用,以便每天将特定文件保存到文件夹中。您需要设置规则以找到包含附件的正确电子邮件。

Public Sub saveAttachtoDisk(itm As Outlook.MailItem)

Dim objAtt As Outlook.Attachment
Const saveFolder As String = "C:\Users\tjb1\Desktop"

For Each objAtt In itm.Attachments
    objAtt.SaveAsFile saveFolder & "\" & objAtt.DisplayName
Next

Set objAtt = Nothing

End Sub

答案 1 :(得分:0)

您可以简单地为Outlook执行VBA宏并将其作为规则运行。 打开Outlook并使用Alt + F11打开VBA编辑器。

以下代码仅保存指定的附件

 Public Sub saveAttach(itm As Outlook.MailItem)
    Dim objAtt As Outlook.Attachment
    Dim saveFolder As String
    saveFolder = "C:\Location\to\be\save\"
    For Each objAtt In itm.Attachments
        objAtt.SaveAsFile saveFolder & objAtt.DisplayName
        Set objAtt = Nothing
    Next
 End Sub

以下代码会保存电子邮件中的所有附件。

scoreboard

保存后,您可以使用脚本创建规则。 在创建规则时,您需要提前选项,当您选择操作时,查找运行脚本,选择是否并确保将其设置为运行您的VBA脚本Sub命名为saveAttach或者您命名为什么。

我希望这有帮助。