Excel 在单元格中设置一个字符串值,并避免将其错误解释为美国日期

Excel 在单元格中设置一个字符串值,并避免将其错误解释为美国日期,excel,vba,date,Excel,Vba,Date,我有一个简单的代码: Cells(1,1).Value="10/02/2018" 我希望单元格A1的值为10/02/2018作为文本或日期,但Excel愚蠢到在单元格A1中写入02/10/2018 除了咒骂Excel程序员,我还能怎么解决这个问题 谢谢如果需要日期,请在插入值后将单元格格式设置为“mm/dd/yyyy”: Cells(1,1).Value="10/02/2018" cells(1,1).NumberFormat = "mm/dd/yyyy" cells(1,1).Number

我有一个简单的代码:

Cells(1,1).Value="10/02/2018"
我希望单元格A1的值为10/02/2018作为文本或日期,但Excel愚蠢到在单元格A1中写入02/10/2018

除了咒骂Excel程序员,我还能怎么解决这个问题


谢谢

如果需要日期,请在插入值后将单元格格式设置为“mm/dd/yyyy”:

Cells(1,1).Value="10/02/2018"
cells(1,1).NumberFormat = "mm/dd/yyyy"
cells(1,1).NumberFormat = "@"
Cells(1,1).Value="10/02/2018"
如果要将其设置为文本,请在插入值之前将单元格设置为文本格式:

Cells(1,1).Value="10/02/2018"
cells(1,1).NumberFormat = "mm/dd/yyyy"
cells(1,1).NumberFormat = "@"
Cells(1,1).Value="10/02/2018"

那么你想要哪种日期格式<代码>年月日或<代码>年月日

您可以使用

Cells(1, 1).NumberFormat = "DD/MM/YYYY"
你可以写一个合适的日期,比如

Cells(1, 1).Value = DateSerial(2018, 2, 10) 'DateSerial(Year, Month, Day)

尽管如此,我还是强烈建议使用
YYYY-MM-DD
,这是唯一不能被人类误解的格式。

将单元格格式设置为文本优先(
Cells(1,1).NumberFormat=“@”
),或者将单元格格式设置为所需的日期格式,以产生您想要的结果。如果是2018年10月2日,格式将是
mm/dd/yyyyy
,但如果是2018年2月10日,格式将是
dd/mm/yyyyy
的可能副本。或者,您可以在单元格内容的开头加一个撇号,也可以让Excel将其视为文本:
单元格(1,1)。Value=“'10/02/2018”
请注意:以建议的格式将日期保存为文本是最糟糕的想法。因为如果你这样做的话,计算机和人都不能说日期实际上是
MM/DD/YYYY
还是
DD/MM/YYYY
。那么猜对了:)由于全球化,唯一推荐的文本格式可以是
YYYY-MM-DD
()。