如何将 excel vba 中的日期格式化为英国日期

How to format date to UK date in excel vba

我创建了一个用户表单,它查看几个输入日期的单元格。奇怪的是,它把日期格式化成英国格式时非常有气质。当我最初编写代码时,它会将日期格式化为英国格式,然后再格式化下一个,今天是 2017 年 9 月 11 日,它已转向美国格式,而不是读取 11/09/2017 而是读取 09/11/2017.

日期通过文本框输入,编码如下。有人可以提出任何建议以防止将来发生这种情况吗?此外,语言和键盘设置均为英语 U.K.

ws.Cells(mRow, 2).Value = Format(Date, "DD/MM/YYYY")
ws.Cells(mRow, 12).Value = Format(Me.TxtRcD.Value, "DD/MM/YYYY")
ws.Cells(mRow, 18).Value = Format(Me.TxtDD.Value, "DD/MM/YYYY")

在所有这些示例中,日期已在文本框中输入为 11/09/2017

确保您以正确的数据格式读取单元格 - 这可能会导致格式化时出现问题。如果是字符串,则将其转换为数字或日期。 如果您将其作为数字阅读,NumberFormat 可能会有用:

selection.NumberFormat = "dd/mm/yyyy"

另外,注意大小写:DD与dd不一样。不要把它放在我的头上,但是例如,如果你需要月份作为 3 个首字母(如 FEB、JUN 等),你需要 'MMM' 而不是 'mmm'