当天小于或等于 12 时,Excel 日/月互换

Excel day/month swapping when day less than or equal to 12

提问人:user22168531 提问时间:7/4/2023 最后编辑:user22168531 更新时间:7/4/2023 访问量:65

问:

在excel中,我有代码可以将数据从源工作表中的某些单元格传输到目标工作表。其中之一是格式为 dd/mm/yyyy hh:mm 的日期。但是,当它被传输时,它打印为 mm/dd/yyyy。

我传输数据的代码是这个。

Sub TransferDataAndSort()
    Dim srcSheet As Worksheet
    Dim destSheet As Worksheet

' Set the source and destination sheets
    Set srcSheet = ThisWorkbook.Sheets("Input Data")
    Set destSheet = ThisWorkbook.Sheets("Raw Data")

' Transfer new data and transpose
    destSheet.Range("B" & lastRow & ":F" & lastRow).Value = Application.Transpose(srcSheet.Range("C2:C6").Value)

在单元格 C6 中,我有

NOW()

函数获取日期和时间。但是,当天小于 13 时,它会在目标工作表中切换日/月。

我注意到这只会在一天是 <=12 时发生。整个列的格式相同 (dd/mm/yyyy hh:mm),但不输出。

我已经检查了单元格的格式,在 dd/mm/yyyy 中是正确的,并且检查了日期/时间的本地设置和 excel 默认设置,它们都是正确的。

任何帮助将不胜感激。

Excel VBA 日期 日期时间 格式

评论

0赞 CHill60 7/4/2023
根据您的区域设置显式设置单元格的格式。发生“交换”是因为默认日期格式是美国,即 MM/DD/YYYY,但一旦每天的数字超过 12,很明显它是非美国数字,所以它会翻转到 DD/MM/YYYY。这是一个由来已久的问题
0赞 CHill60 7/4/2023
F.D.公司 (警告 - 未经测试)或者,始终使用 YYYY-MM-DD 格式的日期来完全克服探测器destSheet.Range("B" & lastRow & ":F" & lastRow).NumberFormat = "dd/mm/yyyy"
0赞 user22168531 7/4/2023
@CHill60C这些解决方案似乎都不起作用......无论如何,谢谢你
0赞 CDP1802 7/4/2023
如何将数据输入到源表中?
0赞 user22168531 7/4/2023
用户手动将信息输入到单元格 C2:C5 中,然后在 C6 中,单元格只是永久保留输入的 NOW() 函数(每当单元格中的信息发生更改时,都会更新)

答: 暂无答案