Я создал скрипт VBA, который будет автоматически сохранять вложения в формате PDF. Кто-нибудь здесь знает, как мне сохранить вложение на основе даты? Например, сегодня 02-04-2020, затем этот конкретный пользователь отправил мне письмо с вложением в формате PDF, затем автоматически будет создана папка с именем 02-04-2020, и вся почта за этот день будет сохранена в этой папке. Затем на следующий день будет создана еще одна папка. Мне действительно нужно разделить входящие вложения по дате.
Вот что у меня есть на данный момент
Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
Dim dateFormat
dateFormat = Format(Now, "yyyy-mm-dd H-mm")
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
Dim getsender As String
saveFolder = "C:\Users\UserName\Desktop\Attachments\"
For Each objAtt In itm.Attachments
If InStr(objAtt.FileName, ".pdf") > 0 Then
objAtt.SaveAsFile saveFolder & "\" & dateFormat & objAtt.DisplayName
Set objAtt = Nothing
End If
Next
End Sub
решение1
Кто-то в codeproject.com помог мне решить мою проблему, и я хотел бы выразить признательность тому человеку, у которого имя пользователя @CHill60. Большое спасибо за помощь. Ниже приведен код от этого человека, и этот код решил мою проблему.
Вот ссылка на мой вопрос, опубликованный на codeproject.com [https://www.codeproject.com/Questions/5258321/Outlook-VBA-automatically-create-a-folder-based-on][1]
Вот полный код, который опубликовал @CHill60. Надеюсь, это может быть полезно другим.
Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
Dim dateFormat As String
dateFormat = Format(itm.CreationTime, "mm-dd-yyyy")
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
Dim getsender As String
saveFolder = "C:\Users\Username\Desktop\DLFolder\" & dateFormat & "\"
CreateFolderIfNotExists saveFolder
For Each objAtt In itm.Attachments
If InStr(objAtt.FileName, ".pdf") > 0 Then
objAtt.SaveAsFile saveFolder & objAtt.DisplayName
End If
Next
End Sub
Public Sub CreateFolderIfNotExists(folderName As String)
Dim fs As Object
Set fs = CreateObject("Scripting.FileSystemObject")
If Not fs.folderexists(folderName) Then
fs.createfolder (folderName)
End If
End Sub