Ich habe ein VBA-Skript erstellt, das PDF-Anhänge automatisch speichert. Weiß hier jemand, wie ich Anhänge datumsabhängig speichern kann? Heute ist beispielsweise der 02.04.2020. Dieser bestimmte Benutzer hat mir eine E-Mail mit einem PDF-Anhang geschickt. Anschließend wird automatisch ein Ordner mit dem Namen 02.04.2020 erstellt und alle E-Mails dieses Tages werden in diesem Ordner gespeichert. Am nächsten Tag wird dann ein weiterer Ordner erstellt. Ich muss die eingehenden Anhänge wirklich nach Datum trennen.
Hier ist, was ich bisher habe
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
Antwort1
Jemand bei codeproject.com hat mir geholfen, mein Problem zu lösen, und ich möchte dieser Person mit dem Benutzernamen @CHill60 danken. Vielen Dank für Ihre Hilfe. Der folgende Code stammt von dieser Person und dieser Code hat mein Problem gelöst.
Hier ist ein Link zu meiner geposteten Frage auf codeproject.com [https://www.codeproject.com/Questions/5258321/Outlook-VBA-automatically-create-a-folder-based-on][1]
Hier ist der vollständige Code, den @CHill60 gepostet hat. Ich hoffe, dass er für andere hilfreich sein kann.
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