Ich habe die folgende, die derzeit extrahiert eine .xls aus einer .zip und speichert sie dann mit einem neuen Namen in einem bestimmten VerzeichnisOutlook VBA Überschreiben auf Datei vorhandene Festplatte
Public Sub saveAttachmentZip(itm As Outlook.MailItem)
Const saveFolder = "C:\Temp\"
Const fileFolder = "C:\Report\"
Dim objAtt As Outlook.Attachment
Dim oApp As Object
Dim dName As Variant
For Each objAtt In itm.Attachments
dName = objAtt.DisplayName
objAtt.SaveAsFile saveFolder & dName
Set oApp = CreateObject("Shell.Application")
oApp.NameSpace("C:\Report\").CopyHere _
oApp.NameSpace(saveFolder & dName).Items
Name fileFolder & "Report.xls" As fileFolder & "NewReport.xls"
Kill saveFolder & dName
Next
End Sub
Mein einziges Problem ist, dass diese Werke einmal und dann scheitert aufgrund der Datei bereits vorhanden. Gibt es eine andere Art, wie ich es speichern muss, damit es die vorhandene Datei überschreibt?
Bonus Info
Ich habe auch die folgenden, die die gleiche Sache tut, aber für E-Mails, die nicht über eine gezippte Erweiterung und diese korrekt überschreibt die vorhandene Datei auf dem Datenträger
Public Sub saveAttach(itm As Outlook.MailItem)
Const fileFolder = "C:\Report\"
Dim objAtt As Outlook.Attachment
For Each objAtt In itm.Attachments
objAtt.SaveAsFile fileFolder & "\" & "OldReport.csv"
Set objAtt = Nothing
Next
End Sub
Ich bekomme immer noch eine Datei existiert bereits Fehler. Es scheint fast so, als würde es nicht einmal an den Punkt kommen, an dem Windows die Datei überschreiben und stattdessen den Code versagen würde, weil es bereits existiert. – Josh
Von Ihrer Gedankenlinie weggegangen, habe ich den Abschnitt auskommentiert, der die Datei umbenannte und dann das Original löscht. Dies überschreibt die Datei korrekt, so dass ich von dort fortfahren kann. Vielen Dank! – Josh
Sind Sie sicher, dass dieser Code überhaupt ausgeführt wird? Anwendung hat keine Eigenschaft oder Funktion namens Namespace. Die GetNamespace-Funktion lässt nur "MAPI" als sein Argument zu. Kein Outlook-Objekt verfügt über die CopyHere-Methode. –