如何防止一天中的时间出现在单元格中的日期上?

问题描述 投票:0回答:1

我有一个宏,可以将单元格设置为日期值,如下所示:

Sub Example(dt As Date, row As Integer, column As Integer)

    ActiveSheet.Cells(row, column) = dt

End Sub

区域日期格式遵循日-月-年约定,因此

dt
的值可以是这样的:
#13/03/2023 08:00:00#

我已将要写入的单元格上的数字格式设置为:“dd/MM/yyyy”,因此我希望日期值看起来像这样:13/03/2023(包括时间在公式栏中,但不在单元格的显示文本上)。

但是,当日期值大于 12 时,一天中的时间似乎始终显示在单元格中。否则,它遵循正确的格式。这是我所看到的示例:

当我进入然后退出单元格的编辑模式时(通过单击公式栏或单击键盘上的 F2),一天中的时间将从单元格中消失。

这是一个视频: https://www.loom.com/share/818e0f287018461a8eb6d726ff8e244b?sid=dd367cd7-a0bd-43ef-8c85-38ea78afd696

什么给予?当日期值大于 12 时,如何防止这种情况并使时间值不显示在这些单元格中?

我尝试使用

cStr()
方法将日期变量转换为字符串值,但 Excel 总是最终将该值存储为单元格中的日期,并在日期变量的日期值为小于12。所以06/03/2023(2023年3月6日)变成了03/06/2023(2023年6月3日),这显然是一个问题。

excel vba datetime globalization
1个回答
0
投票

对于 Excel 和日期时间,一个好的建议是使用双精度数 例如。 而不是日期,请将日期的双精度值提供给单元格:45203.665 将产生单元格的格式。很好用 value2 属性

尝试: ActiveCell.Value2 = 45203.665

© www.soinside.com 2019 - 2024. All rights reserved.