首页 > 解决方案 > VBA Date + TimeValue 不返回时间

问题描述

我有一个日期和时间,我从表单中的字符串组合成日期+时间

date_string = "2020-12-30" 'yyyy-mm-dd    
date_code = CDate(date_string)

time_string = "00:00:00" 'hh:mm:ss
time_code = TimeValue(time_string)

date_time = date_code + time_code

通常回报看起来像05.01.2019 11:00:00,这是我所期望的。

如果我测试,返回的值也都检查为 TRUEIsDate(date_time)

然而,无论何时00:00:00,我只得到返回的日期,没有附加时间。我不太明白这一点,因为TimeValue(time_string)返回00:00:00

因此,将日期和时间组合为日期+时间字符串时一定是个问题。

有人可以告诉我为什么Excel VBA中不存在午夜或者我在创建时间码时的错误在哪里?

编辑:

我试着更好地解释我的情况:

我在代码中执行此日期日期/时间的内容,然后在循环中的数组中执行结果。只是稍后才将其写入表格中的单元格。

当时间被写入单元格时,即使将单元格自定义格式设置为“DD.MM.YYYY hh:mm”也不会显示时间,因为它完全从单元格值中丢失。

我需要在点应用格式date_code + time_code吗?

标签: excelvbadatetime

解决方案


有时答案可能如此简单。感谢 Variatus 和 Paul,我检查了格式。

date_time = Format(date_code + time_code, "dd.mm.yyyy hh:mm")在我的代码中应用了一个。使用它,我的代码按预期运行并按预期00:00:00显示,即使在 Excel 表的单元格值中也是如此。


推荐阅读