如何在 dd/mm/yyyy 格式的单元格中获取今天的日期?



我想把今天的日期(2018年11月4日(放在一个单元格中,格式为(dd/mm/yyyy(:

04/11/2018

然而,到目前为止的每一次尝试都会导致(mm/dd/yyyy格式(:

11/04/2018

原始代码为:

Dim sToday As String
sToday = Date
Cells(nCurrentRow, nCurrentColumn) = sToday

我尝试过的包括:

Cells(nCurrentRow, nCurrentColumn).Value = sToday

和:

Cells(nCurrentRow, nCurrentColumn).Select
Selection.NumberFormat = "dd/mm/yyyy;@"

和:

sToday = Format(Date, "dd-mm-yyyy")

当我在消息框中输出字符串时,它总是以所需的格式出现:04/11/2018

即使我以正确格式04/11/2018将日期作为纯字符串发布,格式仍然会更改!

Windows 10区域设置是我需要的(英国日期格式(。

单元格格式也设置为dd/mm/yyyy

我认为您的算法被VBA US Centric日期首选项搞砸了。无论您的windows短日期区域设置如何,您所需要做的就是将变量作为date(而不是字符串(插入。

VBA将今天的日期转换为字符串时,它是US格式。因此,目标单元格中的numberformat不会对字符串产生任何影响,VBA格式也不会起作用。这两种方法都是基于数字/日期,而不是字符串,就像你使用它的方式一样

例如,尝试:

With Cells(1, 1)
.NumberFormat = "dd/mm/yyyy"
.Value = Date
End With

或者,使用您的变量分配:

Dim dToday As Date
dToday = Date
With Cells(nCurrentRow, nCurrentColumn)
.Value = dToday
.NumberFormat = "dd/mm/yyyy"
End With
Sub test()
Dim sToday As String
sToday = Date
sToday = Format(sToday, "dd mm yyyy")
MsgBox sToday
Cells(1, 1).Value = sToday
End Sub

我试了一下,结果如愿以偿。解决方法是将日期保存在字符串中并格式化字符串。

如何在dd/mm/yyyy格式的单元格中获取今天的日期?

由于您的配置是英国格式:

Ctrl+

最新更新