Excel 中的世界日期格式

Excel 中的世界日期格式

在 Mac Mountain Lion 上,在美国地区,我正在使用类似宏的电子表格

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

问题是该表也用于法语区域设置的电脑,而宏需要

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

并显示#VALUE(自A是为了周年/年是为了日/天在法语中,不是d)。

有没有一种方法 - 宏样式 - 可以使这种“yyyy-mm-dd”格式更加国际化,或者即使在使用法语区域设置的 Mac 上也强制 Excel 使用“ymd”格式?

(如果可能的话,在同一个单元格中执行此操作,即不添加一个包含日期的新单元格,然后在显示的单元格中引用,因为我想尽可能少地修改工作表)

答案1

我有同样的问题;以下是针对我的请求发布的答案这里

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

问候

答案2

我刚刚写了我自己的用户定义函数

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

它利用了 VBA 始终适用于美国区域设置的事实,因此我始终可以使用DM作为Y格式字符串的一部分。

=DATE_FORMAT(A1, "YYYYMMDD")即使在非美国/英国地区,您也可以使用 Excel 公式。

相关内容