Формат даты по всему миру в Excel

2123
Ring Ø

На Mac Mountain Lion в США я работаю над электронной таблицей с такими макросами, как

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

Проблема в том, что лист также используется на компьютерах с французским языком, где макрос ожидает

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

и отображает #VALUE(поскольку a для annee / year и j для jour / day по-французски, а не y и d ).

Есть ли способ - стиль макроса - сделать этот формат "гггг-мм-дд" более интернациональным или заставить Excel использовать формат "ymd" даже на Mac с использованием французского языка?

(если возможно сделать это в той же ячейке, то есть без добавления новой ячейки с датой внутри, на которую ссылается отображаемая ячейка, так как я хочу изменить лист как можно меньше)

2

2 ответа на вопрос

1
user279809

У меня та же проблема ; вот ответ на мой запрос здесь

==================================== 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 

Вам просто нужно определить имя «DateFormat» в книге, а затем использовать его в формулах как = TEXT (A1, DateFormat)

С уважением

1
MP24

Я только что написал свою собственную пользовательскую функцию как

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

Он использует тот факт, что VBA работает с американскими локал во все времена, так что я всегда могу использовать Dи Mи Yкак часть моей строки формата.

Затем вы можете использовать формулу Excel =DATE_FORMAT(A1, "YYYYMMDD")даже в странах за пределами США / Великобритании.