Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA将秒转换为HH:MM:SS_Vba_Excel - Fatal编程技术网

Excel VBA将秒转换为HH:MM:SS

Excel VBA将秒转换为HH:MM:SS,vba,excel,Vba,Excel,试图在整个工作表中转换特定列中的特定数据 这是我的当前代码,它不会出错,但是它不能正确显示第一个结果(显示00:00:00),并且只在第一条记录处停止 Sub CleanEntry() Dim i As Integer Dim Seconds As Integer Dim j As Long Dim c As Long j = 2 For i = Sheet1.UsedRange.Rows.Count To 1 Step -1 c = Range("B" & j

试图在整个工作表中转换特定列中的特定数据

这是我的当前代码,它不会出错,但是它不能正确显示第一个结果(显示00:00:00),并且只在第一条记录处停止

Sub CleanEntry()
    Dim i As Integer
    Dim Seconds As Integer
    Dim j As Long
Dim c As Long
j = 2

For i = Sheet1.UsedRange.Rows.Count To 1 Step -1
c = Range("B" & j).Value
c = c / 86400
Range("B" & j).Value = Format(c, "hh:mm:ss")
j = j + 1
Next
End Sub

虽然我不明白您为什么使用两个计数器,一个向后,另一个向前,但这可以通过一行完成:

Sub CleanEntry()
    Dim i As Long
    Dim j As Long

j = 2

For i = Sheet1.UsedRange.Rows.Count To 1 Step -1
    Range("B" & j).Value = Format(TimeSerial(0, 0, Range("B" & j).Value), "hh:mm:ss")
    j = j + 1
Next
End Sub

虽然我不明白您为什么使用两个计数器,一个向后,另一个向前,但这可以通过一行完成:

Sub CleanEntry()
    Dim i As Long
    Dim j As Long

j = 2

For i = Sheet1.UsedRange.Rows.Count To 1 Step -1
    Range("B" & j).Value = Format(TimeSerial(0, 0, Range("B" & j).Value), "hh:mm:ss")
    j = j + 1
Next
End Sub

由于
c
很长,使用
c=c/86400
将其存储为双精度可能会丢失相当多的信息?long类似于整数,因为它会删除小数。因为时间是十进制的,所以它完全去掉了时间。因此,是的,将其设置为双精度。由于
c
很长,使用
c=c/86400
将其存储为双精度可能会丢失相当多的信息?long类似于整数,因为它会删除小数。因为时间是十进制的,所以它完全去掉了时间。所以,是的,让它加倍。这彻底解决了问题。我根本没有想到时间序列。谢谢这彻底解决了问题。我根本没有想到时间序列。谢谢