时间值被复制粘贴为小数

时间:2019-11-26 10:53:32

标签: excel vba

我有一张纸,其中L列有一些时间条目。例如09:00、12:00、15:00等(我来自欧洲,所以是24小时,而不是上午/下午)。格式为自定义,hh:mm。

我试图在目标单元格中​​获取诸如“ 12:00下午”这样的条目:

ws.Cells(30, columnTimeline).Value = wsFiltered.Range("L" & foundRowFiltered).Value & " o'clock"

代码很好,columnTimelinefoundRowFiltered是指向正确单元格的有效引用。但是,我得到“ 0.5点”。我尝试将原始数据粘贴为值进行复制,但是最终得到了相同的格式(0.5而不是12:00)。

以下是将时间转换为以下时间的一些示例:

12:00 -> 0.5
13:00 -> 0.54167
14:00 -> 0.583
15:00 -> 0.625
16:00 -> 0.67
19:00 -> 0.79167
22:00 -> 0.9167

1 个答案:

答案 0 :(得分:1)

是的。时间是Excel中的浮点值。
您需要使用format将浮点值格式设置为“时间”。

ws.Cells(30, columnTimeline).Value = format(wsFiltered.Range("L" & foundRowFiltered).Value, "hh:mm") & " o'clock"

该值的整数是日期,从1900-01-01开始计数。
Excel中的1.5表示1900-01-02 12:00。

编辑:
我相信一种更好的方法是不要在单元格中添加“时”。
只需添加时间,然后使用单元格的costum格式并添加“时”即可。
这样,您可以在数学中复制或使用时间,而无需使用字符串运算。