如何在Excel中添加前导零(带ms的时间戳没有前导零)

我仍然有一些严重的问题与一些文件。 这是一个相当愚蠢的问题,但我一直在努力工作了很长一段时间,找不到解决办法。 我需要在时间戳中引导零,至less在ms级。 我的软件的时间戳总是这样的:(例子)

9:55:1:19 (即9h,55min,1sec,19ms)

而我需要的样子

09:55:01:019

在Excel中进行转换没有问题。 我用

=VALUE(SUBSTITUTE(G2;":";",";3))

但我总是得到

09:55:01:190 (190ms !!)

因此,毫秒总是像逗号值一样读取,这从软件的angular度是可以理解的。

我想要一个解决scheme,将正确的值附加到新列中每行的末尾,或直接将原始列(D)中的值更改为正确的值。 (追加是好的,因为我的其他脚本已经这样工作了!)

你能帮忙吗?

https://www.dropbox.com/sh/3ch6ikddplnyjgg/vUfnVgbbzH这里是一个示例文件

A1这样的值:

0.413206238

公式:

 =SUBSTITUTE(TEXT(A1,"hh:mm:ss.000"),".",":") 

将显示:

09:55:01:019

编辑#1:

或者如果你想转换列D中的值,就地。 select单元格并运行这个小macros:

 Sub FFormat() Dim r As Range, L As Long, U As Long For Each r In Selection ary = Split(r.Text, ":") U = UBound(ary) L = LBound(ary) For i = L To U If Len(ary(i)) = 1 Then ary(i) = "0" & ary(i) End If Next i If Len(ary(U)) = 2 Then ary(U) = "0" & ary(U) End If r.Value = Join(ary, ":") Next r End Sub 

如果原来在R12(我的例子)是文本,你可以input这个大公式:

 =TEXT(LEFT(SUBSTITUTE(R12;":";REPT(" ";20));4);"00") & ":"&TEXT(MID(SUBSTITUTE(R12;":";REPT(" ";20));14;20);"00") & ":" & TEXT(MID(SUBSTITUTE(R12;":";REPT(" ";20));34;20);"00") & ":" & TEXT(MID(SUBSTITUTE(R12;":";REPT(" ";20));54;20);"000") 

根据您的区域设置,您可能需要将字段分隔符“;”replace为“,”

G列中的数据有一个前导空间 – 无论您是否有前导空格,新列中的这个公式应转换为有效的时间值

=LEFT(TRIM(G2);FIND("^";SUBSTITUTE(TRIM(G2);":";"^";3))-1)+LOOKUP(1000;RIGHT(G2;{1;2;3})+0)/86400000

格式为[h]:mm:ss.000

这将应付单位或双数毫秒,假设如果没有毫秒,你仍然会有第三个:后面跟着一个零。 还可以应付单位数小时,分钟或秒钟