Outlook vba下载附件已重命名,收到日期为先前的日期

时间:2018-08-14 18:46:02

标签: vba outlook runtime-error outlook-vba email-attachments

晚安专家,

总体而言,我认为自己对VBA来说还很陌生。我设法为Microsoft的各种平台创建了一些代码。但是,我遇到了一个主要难题,想知道您是否可以提供帮助?

每天(上午4:00),我都会收到一份报告(电子表格格式),其中包含前一天提交的请求订单。我从来没有为每天的储蓄而烦恼,现在我受命对其进行分析。我正在尝试运行宏以从我的档案(特定文件夹)中下载报告(通过选择电子邮件)并将其保存在某个位置。该报告在每封电子邮件中都使用相同的名称。我不想将其另存为增量文件(即服务订单-1,服务订单-2、3、4、5等)。我想根据收到的先前日期进行保存。

运行代码时,我不断收到错误消息

  

“运行时错误'91':对象变量或未设置块变量”

用于dMsg = objMsg.SentOn的代码。我在做什么错了?

非常感谢您的帮助!

Sub DownloadAttachments()
Dim individualItem As Object
Dim att As Attachment
Dim strPath As String
Dim strFileName As String
Dim strExt As String
Dim dicFileNames As Object
Dim objMsg As Outlook.MailItem
Dim dMsg As Date
Dim strDate As String

strPath = "C:\Users\User1\Desktop\Test2\"

Set dicFileNames = CreateObject("Scripting.Dictionary")

For Each individualItem In Application.ActiveExplorer.Selection

    If TypeName(individualItem) = "MailItem" Then
        For Each att In individualItem.Attachments

            dMsg = objMsg.SentOn

            strDate = Format(dMsg, "yyyy-mm-dd")

            If Not dicFileNames.exists(att.FileName) Then
                dicFileNames.Add att.FileName, 1
            Else
                dicFileNames(att.FileName) = dicFileNames(att.FileName) + 1
            End If

            strFileName = Split(att.FileName, ".")(0)
            strExt = Split(att.FileName, ".")(1)

            att.SaveAsFile strPath & strFileName & strDate & "-" & dicFileNames(att.FileName) & "." & strExt

        Next att
    End If
Next individualItem

End Sub

0 个答案:

没有答案