在 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 始终适用于美国区域设置的事实,因此我始终可以使用D
和M
作为Y
格式字符串的一部分。
=DATE_FORMAT(A1, "YYYYMMDD")
即使在非美国/英国地区,您也可以使用 Excel 公式。