Автоматическое сохранение вложений Outlook с использованием даты получения (минус 1 календарный день)

#vba #outlook

#vba #outlook

Вопрос:

Справочная информация: Я получаю несколько ежедневных отчетов о контроле инфекций в формате pdf из нашей электронной системы медицинских записей через вложения электронной почты Outlook.

Запрос: Учитывая большое количество отчетов, я пытаюсь найти способ автоматического сохранения вложений с использованием правила Outlook. В настоящее время код, который я использую, работает только для сохранения вложения с соответствующей датой получения. Однако эти медицинские отчеты в основном отражают данные за предыдущий день. Поэтому мне было интересно, как бы мне отформатировать этот код так, чтобы дата получения вложения электронной почты была меньше (минус) 1 дня, и автоматически сохранить его в указанном месте?

Вот что у меня есть на данный момент:

 Sub Save_DailyFluReport(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim dateFormat As String
Dim saveFolder As String

dateFormat = Format(itm.ReceivedTime, "dd-mmmm-yyyy")
saveFolder = "Z:Infection ControlIP Daily Surveillance Reports"
    For Each objAtt In itm.Attachments
          objAtt.SaveAsFile saveFolder amp; "" amp; dateFormat amp; " - " amp; objAtt.DisplayName
        Set objAtt = Nothing
     Next
End Sub
  

Ответ №1:

Я понял это! Надеюсь, это решение поможет кому-нибудь еще в будущем.

 Sub Save_DailyFluReport(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim dateFormat As String
Dim saveFolder As String

dateFormat = Format(DateSerial(Year(itm.ReceivedTime), Month(itm.ReceivedTime), Day(itm.ReceivedTime) - 1), "dd-mmmm-yyyy")
saveFolder = "Z:Infection ControlIP Daily Surveillance Reports"
    For Each objAtt In itm.Attachments
          objAtt.SaveAsFile saveFolder amp; "" amp; dateFormat amp; " - Daily Flu Report.pdf"
        Set objAtt = Nothing

     Next
End Sub