当前日期以美国显示,而不是以前的预期格式
Current date displayed in US rather than expected format as it was previously
此 Excel VBA 代码不再有效。
Private Sub cmdAjouter_Click()
Dim ws As Worksheet
Dim lr As Integer
Set ws = ThisWorkbook.Sheets("Achats"
lr = ws.Range("A" & Rows.Count).End(xlUp).Row + 1
ws.Range("M" & lr).Value = Format(Date, "dd/mm/yyyy")
'[...]
End Sub
今天是 2020 年 2 月 11 日,它应该 return 日期为“11/02/2020”(法语格式),但 return 是“02/11/2020”(美国格式)。
最好将它存储为实际的 Date
而不是 String
并且只使用 .NumberFormat
属性 来格式化它,这样是不会尝试根据您的区域设置再次转换它。
ws.Range("M" & lr).NumberFormat = "dd/mm/yyyy"
ws.Range("M" & lr).Value = Date
如果日期是 2 月 13 日,您的方法可能会正常工作,从那时起就不会混淆 13 是一个月。
此 Excel VBA 代码不再有效。
Private Sub cmdAjouter_Click()
Dim ws As Worksheet
Dim lr As Integer
Set ws = ThisWorkbook.Sheets("Achats"
lr = ws.Range("A" & Rows.Count).End(xlUp).Row + 1
ws.Range("M" & lr).Value = Format(Date, "dd/mm/yyyy")
'[...]
End Sub
今天是 2020 年 2 月 11 日,它应该 return 日期为“11/02/2020”(法语格式),但 return 是“02/11/2020”(美国格式)。
最好将它存储为实际的 Date
而不是 String
并且只使用 .NumberFormat
属性 来格式化它,这样是不会尝试根据您的区域设置再次转换它。
ws.Range("M" & lr).NumberFormat = "dd/mm/yyyy"
ws.Range("M" & lr).Value = Date
如果日期是 2 月 13 日,您的方法可能会正常工作,从那时起就不会混淆 13 是一个月。