2017-06-27 2 views
1

Ich versuche, ein Sub zu erstellen, um mein Excel-Arbeitsblatt mit einem Zeitstempel zu speichern, wann es gespeichert wurde, bin ich überhaupt nicht VBA und der Fehler lässt mich denken, dass ich die Datetime.now definieren sollte eine Variable, aber selbst das hat nicht funktioniert, wenn ich es richtig gemacht habe.VBA Verketten von Strings mit Daten

Sub SaveToDir() 
ActiveWorkbook.SaveAs ("T:\BRojas\test2" & Text(DateTime.Now()) & ".xlsx") 

End Sub 

Mein Fehler sagt

Compile error: Sub or Function not defined 

Dank.

+0

ActiveWorkbook.SaveAs Versuchen ("T: \ AWilliams \ test2" & CStr (DateTime.Now()) & ".xlsx") soll – Sorceri

+0

arbeitet es nicht funktioniert, hat gerade versuchte es . Ich habe "Methode 'SaveAs' des Objekts '_Workbook' fehlgeschlagen" – Bruno

+0

Siehe die Antworten unten, da das Problem mit dem Format der datetime Schrägstriche und Doppelpunkte ist. – Sorceri

Antwort

3

Text ist eine Excel-Arbeitsblattfunktion. Das Äquivalent in VBA ist Format.

So möchten Sie verwenden:

ActiveWorkbook.SaveAs "T:\AWilliams\test2" & Format(DateTime.Now(), "yyyymmdd-hhmmss") & ".xlsx" 

verwenden, was Datums-/Uhrzeitformat Sie anstelle des „yyyymmdd-hhmmss“ bevorzugen, die ich oben verwendet. Schließen Sie jedoch keine Schrägstriche (/) oder Doppelpunkte (:) ein, da sie in Dateinamen nicht gültig sind.

+0

Dieser hat funktioniert, danke eine Tonne – Bruno

0

Wie Sorceri kommentiert, sollte das funktionieren, aber Sie müssen die Colons im Zeitstempel noch vor dem Speichern ersetzen.

ActiveWorkbook.SaveAs ("T:\AWilliams\test2" & replace(CStr(DateTime.Now()),":","-") & ".xlsx") 
+0

Schrägstriche ('/') sind auch ungültig. – YowE3K