【发布时间】:2021-02-11 11:00:44
【问题描述】:
此 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 日,它应该返回日期为“11/02/2020”(法语格式),但它返回“02/11/2020”(美国格式)。
【问题讨论】:
-
日期格式将遵循 windows 的区域设置。也许您的机器区域已更改?
-
单元格本身设置为日期格式(短日期),格式为dd/mm/yyyy,
-
可能是这样,但
Format函数将使用字符串设置单元格值,然后单元格将尝试将其转换为日期。试试这个来证明我的观点,只需将日期格式更改为与您想要的相反的格式,您就会得到您想要的。ws.Range("M" & lr).Value = Format(Date, "mm/dd/yyyy") -
@ArcherBird :我在 Windows 中的区域设置设置为法语,但我的 Excel 是英文的(关于与我使用的其他程序的兼容性问题)。在 Windows 和 Excel 中,日期格式的设置方式相同(dd/mm/aaaa)! :(
标签: excel vba date-formatting