Excel数字格式类别:日期还是自定义?(用户输入:“2020年1月1日”)
数字格式类别:为什么被识别为自定义 在以下平台上测试Excel数字格式类别:日期还是自定义?(用户输入:“2020年1月1日”),excel,Excel,数字格式类别:为什么被识别为自定义 在以下平台上测试 Mac上的Excel(16.37) Windows上的Excel(2002版) 卓越在线 我的客户在问一个问题:当他在单元格中键入“1 jan 2020”时,Excel会识别并转换为1-jan-2020,当您双击该单元格,进入单元格编辑模式时,其值会更改为2020/1/1。 但是,在检查数字格式时,它被归类为自定义 在日期类别中,有一种格式与excel提供给客户的格式完全匹配 那么,有人可以分享一些见解,为什么用户输入“2020年1
- Mac上的Excel(16.37)
- Windows上的Excel(2002版)
- 卓越在线
[$-en-US]d-mmm-yy@代码>而不是自动检测到的d-mmm-yy
这两种格式的区别在于d-mmm-yy
将针对不同的用户区域进行本地化,但是[$-en-US]d-mmm-yy@代码>将不显示。它与英语(美国)有关。
在Windows中,可以通过Win+R->intl.cpl根据用户区域设置进行更改
Excel的逻辑是获取数字格式,然后对所有类别进行线性搜索,以查看它是否存在于任何位置。对于默认情况下处于自定义状态的两种格式,它都将以自定义状态结束,但如果根本没有找到匹配项,也会以自定义状态结束<代码>2020年1月1日
未归类为日期-格式为d-mmm-yy,与数据类别中的任何格式都不匹配;它确实匹配自定义类别中的格式,因此它被分类为自定义
以下是VBA中的一个简单解决方法,已剪切到工作簿模块,新条目将具有预期格式:
Private Sub Workbook_SheetChange(ByVal Sheet As Object, ByVal Target As Range)
With Sheet
If Target.NumberFormat = "d-mmm-yy" Then
Target.NumberFormat = "[$-en-US]d-mmm-yy;@"
End If
End With
End Sub
它是什么版本的Excel?我在英国使用365,该日期格式仅在自定义中显示。