我有一张纸,其中L列有一些时间条目。例如09:00、12:00、15:00等(我来自欧洲,所以是24小时,而不是上午/下午)。格式为自定义,hh:mm。
我试图在目标单元格中获取诸如“ 12:00下午”这样的条目:
ws.Cells(30, columnTimeline).Value = wsFiltered.Range("L" & foundRowFiltered).Value & " o'clock"
代码很好,columnTimeline
和foundRowFiltered
是指向正确单元格的有效引用。但是,我得到“ 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
答案 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格式并添加“时”即可。
这样,您可以在数学中复制或使用时间,而无需使用字符串运算。