如何在 dd/mm/yyyy 格式的单元格中获取今天的日期?
How can I get today's date in a cell in dd/mm/yyyy format?
我想将今天的日期(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
即使我 post 将日期作为正确格式的纯字符串 04/11/2018
格式仍然会改变!
Windows 10个区域设置按我要求(英国日期格式)。
单元格格式也设置为dd/mm/yyyy
。
Sub test()
Dim sToday As String
sToday = Date
sToday = Format(sToday, "dd mm yyyy")
MsgBox sToday
Cells(1, 1).Value = sToday
End Sub
我试过了,我得到了想要的结果。
解决方法是将日期保存在字符串中并格式化字符串。
我认为你的算法被 VBA 以美国为中心的日期偏好所迷惑。
无论您的 windows 短日期区域设置如何,您需要做的就是将变量作为日期(而不是字符串)插入。
当VBA将今天的日期转换为字符串时,它是美国格式。因此,目标单元格中的数字格式不会对字符串产生任何影响,VBA 格式函数也不会。这两个都作用于 numbers/dates 但不作用于字符串,就像您使用它的方式一样。
例如,尝试:
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
How can I get today's date in a cell in dd/mm/yyyy format?
由于您的配置是英国格式:
Ctrl+;
我想将今天的日期(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
即使我 post 将日期作为正确格式的纯字符串 04/11/2018
格式仍然会改变!
Windows 10个区域设置按我要求(英国日期格式)。
单元格格式也设置为dd/mm/yyyy
。
Sub test()
Dim sToday As String
sToday = Date
sToday = Format(sToday, "dd mm yyyy")
MsgBox sToday
Cells(1, 1).Value = sToday
End Sub
我试过了,我得到了想要的结果。 解决方法是将日期保存在字符串中并格式化字符串。
我认为你的算法被 VBA 以美国为中心的日期偏好所迷惑。 无论您的 windows 短日期区域设置如何,您需要做的就是将变量作为日期(而不是字符串)插入。
当VBA将今天的日期转换为字符串时,它是美国格式。因此,目标单元格中的数字格式不会对字符串产生任何影响,VBA 格式函数也不会。这两个都作用于 numbers/dates 但不作用于字符串,就像您使用它的方式一样。
例如,尝试:
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
How can I get today's date in a cell in dd/mm/yyyy format?
由于您的配置是英国格式:
Ctrl+;