【问题标题】:Excel VBA - How to convert 12:00:00 AM time to decimal/number?Excel VBA - 如何将 12:00:00 AM 时间转换为十进制/数字?
【发布时间】:2017-05-08 17:18:17
【问题描述】:

我不知道如何将 12:00:00 AM 转换为数字/十进制。我尝试将时间格式转换为“短时间”或“h.mm”,但它不起作用,它仍然返回 0。

Dim dbConvertTime as Double
Dim dtTime as Date

dtTime = Format("12:00:00 AM","Short Time")
dbConvertTime = (dtTime * 24)

*输出 dbConvertTime = 0

我想将 Time(12:00:00) 转换为 24:00:00,因为此数据 (12:00:00) 乘以 24 时返回 0。输出应为 = 576.00

【问题讨论】:

标签: vba excel datetime


【解决方案1】:

将返回时间戳的小时

Hour(Now())

这将返回一个 24 小时格式的时间戳。如果您想要 12 小时格式,您可以执行以下操作:

dtTime = IIf(Hour(tme) > 12 Or Hour(tme) = 0, Abs(Hour(tme) - 12), Hour(tme))

我在这里使用abs 来返回 12 以表示时间是上午 12 点

【讨论】:

  • 以我最好的感觉 - 你不认为,世界上最常用的电子表格解决方案比用于转换时间等琐碎任务的自定义公式更好吗? - msdn.microsoft.com/en-us/library/office/gg251755.aspx
  • @Vityata 给猫剥皮的方法不止一种。当时间为“12:00:00 AM”时,OP 所述的 NumberFormat 也不会返回 12。如上将。此外,当一切都是 vba 和工作表函数中都可用的标准功能时,这几乎不是自定义公式
猜你喜欢
  • 1970-01-01
  • 2015-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 2021-03-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多