Excel VBA-Datumsformat: Bindestrich als Trennzeichen führt zu seltsamem Ersetzungsergebnis

Excel VBA-Datumsformat: Bindestrich als Trennzeichen führt zu seltsamem Ersetzungsergebnis

Excel 2007.

Ich möchte ein Makro, das das heutige Datum im Format TT-MMM-JJ in die aktuelle Zelle einfügt, z. B. 30.10.14.

Der Code, den ich habe, ist einfach:

„ActiveCell.Value = Format(Jetzt(), „tt-mmm-jj“)“

Aus irgendeinem Grund wird „30. Okt. 14“ mit Leerzeichen statt Bindestrichen zurückgegeben.

Ähnliche Formate funktionieren einwandfrei. zB

tt-mm-jj ergibt 30.10.14,
tt~mmm~jj ergibt 30.10.14

Der tatsächliche Wert der Zelle wird auf „10 30 2014“ gesetzt.

Kann mir jemand eine einfache Problemumgehung nennen und, wenn möglich, erklären, warum das passiert?

Antwort1

Excel konvertiert den von Ihnen mit dem Makro eingegebenen Text automatisch in ein Datum (und wendet dann ein Datumsformat an). Um Excel zu zwingen, den Text als Text anzuzeigen, stellen Sie der Datumszeichenfolge ein einfaches Anführungszeichen voran:

ActiveCell.Value = "'" + Format(Now(), "dd-mmm-yy")

Alternativ können Sie das Format der Zelle zunächst auf den Texttyp festlegen:

ActiveCell.NumberFormat = "@"
ActiveCell.Value = Format(Now(), "dd-mmm-yy")

verwandte Informationen