Как переименовать и добавить полученную дату в мое вложение, загруженное из outlook с помощью VBA? - PullRequest
0 голосов
/ 25 сентября 2019

Мой текущий скрипт VBA автоматически загружает вложения из выбранных писем на мой локальный диск.Теперь я хотел бы переименовать имя файла вложения и указать дату загрузки.Дата должна быть за день до получения письма.Пожалуйста, мой код ниже.

    Public Sub SaveAutoAttach(item As Outlook.MailItem)

Dim object_attachment As Outlook.Attachment

Dim saveFolder As String
' Folder location when I want to save my file
saveFolder = "\\gbhxxxx\Groups\Shared\EBS\Post Go-Live\Auto MT940 download Test"


    For Each object_attachment In item.Attachments
' Criteria to save .940 files only

    If InStr(object_attachment.DisplayName, "UKAutoMT940") Then

  object_attachment.SaveAsFile saveFolder & "\" & object_attachment.DisplayName
    End If

    Next

End Sub

Большое спасибо

1 Ответ

0 голосов
/ 25 сентября 2019

Обновлен ваш код ниже, чтобы добавить дату ДО отображаемого имени файла.Мы делаем это, используя DATEADD и добавляя -1 день к полученной дате, и ФОРМАТИРУЯ значение даты и времени в значение даты с "-" вместо "/"s.

Если вы хотите добавить егоПОСЛЕ имени файла, но перед расширением, нам нужно проанализировать имя файла.

Public Sub SaveAutoAttach(item As Outlook.MailItem)

Dim object_attachment As Outlook.Attachment

Dim saveFolder As String
' Folder location when I want to save my file
saveFolder = "\\gbhxxxx\Groups\Shared\EBS\Post Go-Live\Auto MT940 download Test"


    For Each object_attachment In item.Attachments
' Criteria to save .940 files only

    If InStr(object_attachment.DisplayName, "UKAutoMT940") Then

       object_attachment.SaveAsFile saveFolder & "\" & Format(DateAdd("d", -1, item.ReceivedTime), "dd-mm-yyyy") & "_" & object_attachment.DisplayName
    End If

    Next

End Sub
...