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
使用步骤:
- 打开排班表Excel文件,先复制一份工作表备份(防止覆盖原始数据)。
- 选中所有需要转换的排班时间单元格(可多选整列,脚本会自动跳过非时间内容)。
- 按下
Alt + F11打开VBA编辑器。 - 点击菜单栏「插入」→「模块」,将上述代码粘贴到空白模块中。
- 返回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
相关产品推荐
相关产品推荐

