【发布时间】:2020-07-21 19:13:43
【问题描述】:
我有一个日期和时间,我将表单中的字符串组合成日期+时间
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,这是我所期望的。
如果我使用IsDate(date_time) 进行测试,返回的值也会全部检查为 TRUE
然而,只要时间是00:00:00,我只会得到返回的日期,没有附加时间。我不太明白这一点,因为TimeValue(time_string)returns 00:00:00。
所以将日期和时间组合成日期+时间字符串时一定是个问题。
有人可以告诉我为什么 Excel VBA 中不存在午夜或者我在创建时间码时的错误在哪里?
编辑:
我试着更好地解释我的情况:
我在代码中执行此日期日期/时间的内容,然后在循环中生成数组。只是稍后才将其写入表格中的单元格。
当时间被写入单元格时,即使将单元格自定义格式设置为“DD.MM.YYYY hh:mm”也不会显示时间,因为它完全从单元格值中丢失。
我需要在date_code + time_code 处应用格式吗?
【问题讨论】:
-
您是否尝试过格式化单元格以包含时间?如果时间为零,则默认日期格式不包括时间。
-
日期和时间是表示自给定日期以来的时间的数字(第 1 天是
01/01/1900)。添加整数以增加天数,添加小数以增加时间。午夜 (00:00:00) 用于表示一天的开始(例如,1.0是01/01/1900的午夜),如果没有对单元格应用格式,Excel 通常会省略时间。