我是这个社区的新手,所以如果我犯了任何新手的错误,请在这篇文章中批评你想要的一切。
我目前正在执行任务。我对视觉基础有点新,但到目前为止我的理解还算不错。但是,我似乎无法对基本操作进行排序。我已经在互联网上搜索了一下,然后把头撞在了墙上一两天了。希望你可以帮我解决这个问题。
我从Oracle数据库导入不同订单的周期时间。它们作为十进制值(小时数)返回到列中,但我希望它们显示为" Long Time" (" HH:MM:SS&#34)。我所读到的,应该像除以24并改变格式一样简单。但是,使用单元格值时,这会给出错误的值。
示例:
? ws.Cells(i,6) 'Cycle times are placed in column 6 while looping over rows i.
0.050000
? Format(0.050000/24, "hh:mm:ss")
00:03:00
但
? Format(ws.Cells(i,6)/24,"hh:mm:ss")
08:00:00
显然不正确。 0.05小时相当于3分钟。我也发现了日期值的变化:
? Format(0.05/24, "yyyy-mm-dd hh:mm:ss")
1899-12-30 00:03:00
? Format(ws.Cells(i,6)/24, "yyyy-mm-dd hh:mm:ss")
1905-09-13 08:00:00
这怎么可能!? ws.Cells(i,6)
返回0.05。尽管如此Format(ws.Cells(i,6)/24,"hh:mm:ss")
≠Format(0.05/24,"hh:mm:ss")
我已尝试弄乱数字格式(字符串,日期等),.Value
和.Value2
有人知道发生了什么以及为什么会这样吗?
感谢您提前抽出时间。
答案 0 :(得分:0)
问题似乎源于这样一个事实:您的计算机认为0.050000
实际上不是数字0.05
,而实际上是一个被解释为50000
的字符串。
因此,当您将50000除以12时,您会得到1905-09-13 08:00:00
的日期/时间,当使用08:00:00
格式时,该日期/时间仅显示为"hh:mm:ss"
。
我认为你需要查看你的日期/时间&语言设置,以确保它们设置正确。