You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets中将24小时制时间转12小时制的脚本求助(复杂单元格)

24小时制转12小时制排班表转换脚本

以下是可直接在Excel中运行的VBA脚本,能批量将「HH:MM - HH:MM」格式的24小时制时间转换为带AM/PM标识的12小时制:

Sub ConvertTo12Hour()
    Dim cell As Range
    Dim timeParts As Variant
    Dim startTime As String, endTime As String
    
    ' 遍历选中的所有单元格
    For Each cell In Selection
        ' 判断是否为时间格式(自动跳过"NO SHIFT")
        If cell.Value Like "##:## - ##:##" Then
            ' 拆分开始和结束时间
            timeParts = Split(cell.Value, " - ")
            startTime = ConvertSingleTime(timeParts(0))
            endTime = ConvertSingleTime(timeParts(1))
            ' 替换为转换后的12小时制时间
            cell.Value = startTime & " - " & endTime
        End If
    Next cell
End Sub

' 单个时间字符串转换函数
Function ConvertSingleTime(timeStr As String) As String
    Dim hours As Integer, minutes As Integer
    Dim amPm As String
    
    hours = CInt(Split(timeStr, ":")(0))
    minutes = CInt(Split(timeStr, ":")(1))
    
    ' 处理AM/PM和小时转换逻辑
    Select Case hours
        Case 0
            hours = 12
            amPm = "AM"
        Case 1 To 11
            amPm = "AM"
        Case 12
            amPm = "PM"
        Case 13 To 23
            hours = hours - 12
            amPm = "PM"
    End Select
    
    ' 格式化输出(保持两位数字的小时和分钟)
    ConvertSingleTime = Format(hours, "00") & ":" & Format(minutes, "00") & " " & amPm
End Function

使用步骤:

  1. 打开排班表Excel文件,先复制一份工作表备份(防止覆盖原始数据)。
  2. 选中所有需要转换的排班时间单元格(可多选整列,脚本会自动跳过非时间内容)。
  3. 按下Alt + F11打开VBA编辑器。
  4. 点击菜单栏「插入」→「模块」,将上述代码粘贴到空白模块中。
  5. 返回Excel界面,按下Alt + F8,选择ConvertTo12Hour宏并点击「执行」。

转换示例:

  • 原时间16:00 - 00:00 → 04:00 PM - 12:00 AM
  • 原时间06:45 - 16:00 → 06:45 AM - 04:00 PM

内容的提问来源于stack exchange,提问作者Getir NYC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 00:53:14