Excel VBA-Datumsformat: Bindestrich als Trennzeichen gibt ein seltsames Ersetzungsergebnis an

3991
Malcolm Morris

Excel 2007.

Ich möchte, dass ein Makro das heutige Datum in der aktuellen Zelle als dd-mmm-yy formatiert, z. B. 30-Oct-14.

Der Code, den ich habe, ist einfach:

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

Aus irgendeinem Grund wird "30. Oktober 14" mit Leerzeichen anstelle von Bindestrich zurückgegeben.

Ähnliche Formate funktionieren korrekt. z.B

dd-mm-yy ergibt 30-10-14,
dd-mmm-yy ergibt 30-Okt-14

Der tatsächliche Zellenwert ist auf "10 30 2014" gesetzt.

Kann mir jemand eine einfache Problemumgehung geben und wenn möglich erklären, warum dies geschieht?

0
Siehe https://stackoverflow.com/questions/19781234/how-to-concatenate-datemm-dd-yyyy-with-time-hhmmss-using-vba/19784256#19784256 rakslice vor 9 Jahren 0

1 Antwort auf die Frage

1
Andrew Cave

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

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

Setzen Sie alternativ das Format der Zelle zuerst auf den Texttyp:

ActiveCell.NumberFormat = "@" ActiveCell.Value = Format(Now(), "dd-mmm-yy") 
Vielen Dank. Beide Optionen werden korrekt angezeigt, obwohl die zweite, ohne das Anführungszeichen, das ist, was ich brauche. Ich würde als gelöst gelten, wenn ich den Ruf hätte ... Malcolm Morris vor 9 Jahren 0