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

标签 excel vba datetime

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

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

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

    最佳答案

    假设它是一个实整数,而不是文本:
    =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
    

    字符串:
    Function RetTimeS(StrTime As String) As Date
    RetTimeS = TimeSerial(Val(Left(StrTime, 2)), Val(Mid(StrTime, 3, 2)), Val(Right(StrTime, 2)))
    End Function
    

    关于excel - 如何将给定数字转换为时间格式 HH :MM:SS in VBA?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11087787/

    相关文章:

    vba - 将约会保存到 Exchange 公共(public)日历文件夹

    vba - Excel 中具有大型数据集的 VBA 子例程的速度问题

    javascript - 在 Node.JS 中输出用户时区时间戳的最佳方式

    javascript - jQuery DateTimePicker 添加 5 分钟到当前日期

    excel - 电源查询过滤每年的前 N ​​个值

    .net - OpenXML SDK : Make Excel recalculate formula

    excel - Excel中一个单词的十六进制值

    excel - VBA - 将字符串转换为 UNICODE

    mysql - 小于日期不选择相等日期sql

    java - 如何使用VBA宏打开CSV文件