如何将给定数字转换为时间格式HH:MM:SS在VBA中?

pha*_*han 1 excel datetime vba

我收到了自定义格式(类型:000000)中代表军事时间的数字列表.它总是包含6位数字,必要时使用前导零.例如:

  • 123456变为12:34:56(下午)
  • 000321成为00:03:21(am)
  • 142321变成14:23:21(下午)

如何将A列中的整数转换为B列中的格式(hh:mm:ss)?我想用军用,24小时制.

Sea*_*anC 7

假设它是一个实数,而不是文本:

=TIME(INT(A1/10000),INT(MOD(A1,10000)/100),MOD(A1,100))

如果是文字,那就用吧

=TIME(VALUE(LEFT(A1,2)),VALUE(MID(A1,3,2)),VALUE(RIGHT(A1,2)))

根据需要格式化结果.

作为VBA函数:整数:

Function RetTime(IntTime As Long) As Date
RetTime = TimeSerial(Int(IntTime / 10000), Int((IntTime Mod 10000) / 100), (IntTime Mod 100))
End Function
Run Code Online (Sandbox Code Playgroud)

串:

Function RetTimeS(StrTime As String) As Date
RetTimeS = TimeSerial(Val(Left(StrTime, 2)), Val(Mid(StrTime, 3, 2)), Val(Right(StrTime, 2)))
End Function
Run Code Online (Sandbox Code Playgroud)


bar*_*ini 6

尝试TEXT功能,即在B1中

=TEXT(A1,"00\:00\:00")+0

格式为hh:mm:ss