Datumsformat weltweit in Excel

2235
Ring Ø

Auf einem Mac Mountain Lion in den USA arbeite ich an einer Tabelle mit Makros

TEXT(TODAY(), "yyyy-mm-dd")&" is the date" 

Das Problem ist, dass das Arbeitsblatt auch auf Computern mit französischem Gebietsschema verwendet wird, auf denen das Makro erwartet

TEXT(TODAY(), "aaaa-mm-jj")&" is the date" 

und zeigt #VALUE(da a für ein Knie / Jahr und j für Jour / Tag in Französisch ist, nicht für y und d ).

Gibt es einen Weg (Makro-Stil), um dieses "JJJJJ-MM-TT" -Format internationaler zu machen, oder Excel dazu zwingen, das "YMD" -Format selbst auf einem Mac mit französischem Gebietsschema zu verwenden?

(Wenn möglich, in derselben Zelle, dh ohne Hinzufügen einer neuen Zelle mit einem Datum, dann in der angezeigten Zelle referenzieren, da ich das Blatt so wenig wie möglich ändern möchte.)

2

2 Antworten auf die Frage

1
user279809

Ich habe das gleiche Problem ; Hier ist die Antwort auf meine Anfrage hier

==================================== Private Sub Workbook_Open() With Application Select Case .International(xlDateOrder) Case 0 'mdy ThisWorkbook.Names("DateFormat").Value = _ .International(xlMonthCode) & _ .International(xlDateSeparator) & _ .International(xlDayCode) & _ .International(xlDateSeparator) & _ .International(xlYearCode) & _ .International(xlYearCode)  Case 1 'dmy ThisWorkbook.Names("DateFormat").Value = _ .International(xlDayCode) & _ .International(xlDateSeparator) & _ .International(xlMonthCode) & _ .International(xlDateSeparator) & _ .International(xlYearCode) & _ .International(xlYearCode)  Case 2 'ymd ThisWorkbook.Names("DateFormat").Value = _ .International(xlYearCode) & _ .International(xlYearCode) & _ .International(xlMonthCode) & _ .International(xlDateSeparator) & _ .International(xlDayCode) End Select End With End Sub 

Sie müssen lediglich den Namen "DateFormat" in der Arbeitsmappe definieren und ihn dann in Formeln als = TEXT (A1, DateFormat) verwenden.

Grüße

1
MP24

Ich habe gerade meine eigene benutzerdefinierte Funktion als geschrieben

Public Function DATE_FORMAT(dt as Date, fmt as String) as String DATE_FORMAT = Format(dt, fmt) End Function 

Es nutzt die Tatsache, dass VBA zu jeder Zeit mit dem US-Gebietsschema arbeitet, sodass ich immer Dund Mund Yals Teil meiner Formatzeichenfolge verwenden kann.

Sie können die Excel-Formel dann =DATE_FORMAT(A1, "YYYYMMDD")auch in Gebietsschemata außerhalb der USA / Großbritannien verwenden.