2016-08-01 4 views
0

Ich habe eine Spalte mit einigen Zeichenfolge Wert in Excel-Datei.Excel-Makro zu formatieren Datum

Col A 
20131022082702 
20131022082702 
20131022082739 
20131022082739 

Ich möchte jeden Zellenwert in ein Datumsformat konvertieren, z. YYYY/MM/DD HH:MM

20131022082702 // should be formatted as 2013/10/22 08:27 

Ich habe mich nur gefragt, ob es eine eingebaute Funktion ist, können wir ihn formatieren verwenden, um eine Art von Makro?

Ein Ansatz, den ich mir vorstellen kann, ist Sub-String zu nehmen und benutzerdefinierte Logik in Makro zu schreiben. Jede andere Arbeit dafür wird sehr geschätzt!

Vielen Dank für Ihre Zeit.

Antwort

6

Wenn Sie die Arbeitsblattfunktion TEXT verwenden, können Sie sie wie einen Datums-/Zeitstempel formatieren, und Excel konvertiert sie in einen "echten" Wert. Sie können es dann formatieren, wie Sie wollen:

=--TEXT(A1,"0000\/00\/00 00\:00\:00") 

EDIT: In VBA, kann man diese Zeile verwenden, um die Konvertierung zu tun. Ähnlicher Algorithmus, aber mit nativen VBA-Funktionen:

cdate(format(N,"0000 00 00 00:00:00")) 

wo N Ihre 14-stellige Nummer ist

+0

Nur eine kurze Frage @Ron, kann ich die gleiche Funktion in meinem Makro verwenden? Eigentlich möchte ich diese Funktionalität über Makro haben. – Rockstar

+0

@Rockstar Sie können, aber ich werde eine Methode hinzufügen, die native VBA-Funktionen verwendet –

+0

Dank @Ron, sehr geschätzt, Ihre Hilfe! – Rockstar

1

Mehr langatmig als @ Rons Antwort, aber eine andere Methode trennt den String aus:

=TEXT(DATE(MID(A1,1,4),MID(A1,5,2),MID(A1,7,2))+TIME(MID(A1,9,2),MID(A1,11,2),MID(A1,13,2)),"dd/mm/yyyy hh:mm")