VBA - Erstellen und speichern Sie den Ordner nach Datum

563
Lenny

Ich muss ein paar Dinge tun, die einfach zu sein scheinen, aber es fällt mir schwer, herauszufinden, wie man sie umsetzt.

Ich muss einen Ordner mit dem heutigen Datum erstellen. Dieser Teil ist in Ordnung. Dann muss ich eine Datei mit Text und heutigem Datum (auch in Ordnung) speichern.

Der Teil, der mir gehört, ist, dass ich die neue Datei in dem neuen Ordner speichern muss. Wie kann ich die Datei sowohl mit dem heutigen Datum speichern als auch im neuen Ordner mit dem heutigen Datum speichern? (Wenn der Dateipfad konstant wäre, würde ich das gut machen, aber wenn sich ein Teil des Pfads mit dem Datum ändert, weiß ich nicht, wie ich das machen soll.)

Das habe ich versucht, aber es funktioniert nicht. Ich erhalte den folgenden Fehler: 1004: Anwendungsdefinierter oder objektdefinierter Fehler.

Sub filesave()  ActiveWorkbook.SaveAs ("S:\HR\TM\" & Format(Now(),"dd.mm.yyyy") & "\SOX recon " & Format(Now(), "dd.mm.yyyy") & ".xlsx")  End Sub 

Dies ist der Code zum Erstellen des Ordners (der perfekt funktioniert):

Sub FolderCreate()  MkDir "S:\HR\TM\" & Format(Now(), "dd.mm.yyyy")  End Sub 

Bitte beachten Sie, dass der Dateipfad / Verzeichnis aus Sicherheitsgründen leicht geändert / vereinfacht wurde.

0
Wo erstellen Sie den Ordner? Haben Sie versucht, den Code zu debuggen, indem Sie mindestens die Zeichenfolge anzeigen, die Sie generieren? harrymc vor 5 Jahren 0
@harrymc - der Ordner wurde bereits zuvor erstellt. Dieser Code funktioniert einwandfrei (er erstellt im Ordner "TM" einen neuen Ordner mit dem aktuellen Datum im Format "dd.mm.yyyy"). Mein Problem ist, dass der Ordnername bei jeder Ausführung anders ist. Es wird jedoch immer nach dem aktuellen Datum benannt. Lenny vor 5 Jahren 0
Unterscheidet sich von was? Kannst du den anderen Code zeigen? Warum müssen Sie den Namen zweimal neu berechnen? harrymc vor 5 Jahren 0
@harrymc jede Woche wird der Ordner erstellt. Der Name ist jedes Mal anders, da es sich um einen Datumsordner handelt (heute würde er 29.11.2018 heißen; nächste Woche wird er 06.12.2018 heißen; und so eine). Daher ist der Ordner, in dem die Datei gespeichert wird, jede Woche anders und wird erst beim Abschluss des Prozesses ermittelt. Ich werde den Ordner-Erstellungscode hinzufügen ... Lenny vor 5 Jahren 0

1 Antwort auf die Frage

0
harrymc

Nur eine Vermutung:

fname = "S:\HR\TM\" & Format(Now(),"dd.mm.yyyy") & "\SOX recon " & Format(Now(), "dd.mm.yyyy") & ".xlsx" MsgBox fname ActiveWorkbook.SaveAs Filename:=fname, FileFormat:=xlOpenXMLWorkbook