将日期格式从dd / mm / yyy更改为dd-mm-yyyy

时间:2019-07-18 07:46:02

标签: excel vba

我已经厌倦了将日期格式从dd/mm/yyyy更改为yyyy-mm-dd。在前端用户中,以dd/mm/yyyy格式输入日期,同时将相同的详细信息导入到文本文件中,日期格式应以yyyy-mm-dd格式打印。

Range("A1").Value = Format(Range("A1").value, "dd/mm/yyyy")

Range("A1").Value = Format(Range("A1").value, "dd/mm/yyyy")

用户已在单元格A1中输入日期dd/mm/yyyy。将其导入文本文件时,应打印为yyyy-mm-dd

2 个答案:

答案 0 :(得分:1)

您还应该更改单元格的格式,而不仅仅是其值:

Range("A1").NumberFormat = "yyyy-mm-dd"

答案 1 :(得分:1)

如果您在A1中的日期是字符串/文本(而不是真实日期)...

…您不能使用仅适用于实际日期和数字的Format()。因此,您需要先分析字符串并创建一个实际日期:

Dim DateString As String
DateString = Range("A1").Value

'split string into 3 parts
Dim DateArr As Variant
DateArr = Split(DateString, "/")

'create a real date out of the 3 parts
Dim RealDate As Date
RealDate = DateSerial(DateArr(2), DateArr(1), DateArr(0))

'write real date into cell
Range("A1").Value = RealDate
'format it in desired format
Range("A1").NumberFormat = "yyyy-mm-dd"

如果您在A1中的日期是真实日期(不是字符串)...

…那么您只需格式化单元格

Range("A1").NumberFormat = "yyyy-mm-dd"

推荐

切勿使用字符串作为日期。日期必须始终是日期格式,不能是字符串/文本。否则,您将无法确定日期是dd/mm/yyyy还是mm/dd/yyyy。字符串日期是邪恶的!