Outlook附件无法自动或正确下载 - 使用脚本

时间:2017-03-14 18:29:54

标签: vba outlook outlook-vba

我有一个简短的Outlook VBA宏,可以将特定电子邮件中的附件下载到特定文件夹。

我的设置如下:

Apply this rule after the message arrives
From ******@***.com
And on this computer only
Move it to the pricing folder
And run Project1.saveAttachtoDrive

对于前景规则。

宏设置:图片上的默认设置,宏设置上的“启用所有宏”。

代码:

Public Sub saveAttachtoDrive(itm As Outlook.MailItem)
'Created by Selkie in order to automatically download attachments
Dim objAtt As Outlook.Attachment
'Shortening things
Dim dt As Date
'The date
Dim saveFolder As String
'We need to save the file somewhere
dt = Format(Date, "MMDDYY")
'Gotta get the date, and need it in a useable format
saveFolder = "L:\*******\Testing Folder\"
'Save location - change as needed
     For Each objAtt In itm.Attachments
     'For every attachment we get
          objAtt.SaveAsFile saveFolder & dt & objAtt.DisplayName
          'Save it
          Set objAtt = Nothing
     Next
End Sub

现在,当我运行相当类似的东西,但在收到电子邮件时作为文件夹刮取而不是触发器,我确实设法下载给定文件中的附件。

我做错了什么吗?我需要启用一些Outlook设置吗?或者我完全塞了代码? (看起来非常类似于我在3-4个不同位置看到的东西,只是位置,评论和添加日期都是唯一的“

1 个答案:

答案 0 :(得分:2)

您的问题是您的文件名不是您认为的,因为您已将dt声明为日期,因此格式的字符串输出被强制转换回日期而不是保留为字符串。

Sub Tester()

    Dim dt As Date                '<<
    dt = Format(Date, "MMDDYY")
    Debug.Print dt                '>>  1/5/1986 :same as CDate("031417")

    Dim dt2 As String             '<<   Note
    dt2 = Format(Date, "MMDDYY")
    Debug.Print dt2               '>>  031417

End Sub