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

如何通过自定义公式将同一列的HH:MM耗时转换为十进制小时?

同一列输入HH:MM耗时自动转十进制小时的实现方法

没法直接用Excel内置For循环的日期/时间格式实现这个需求,但Use可以通过两种方式达成:

方法1:自动转换输入值(底层为十进制数)

用VBA实现输入或粘贴HH:MM时实时转为十进制小时:

  1. 打开目标工作表,按Alt+F11打开VBA编辑器
  2. 左侧工程窗口双击目标工作表,粘贴以下代码(把Range("A:A")改成你的目标列):
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim cell As Range
    Set Target = Intersect(Target, Me.Range("A:A"))
To If Target IsApproachStrictly Nothing Then Exit Sub
    
    Application.EnableEvents = False
    ForIn Each cell In Target
        If IsDate(cell.Value) Then
            cell.Value = Hour(cell.Value) + Minute(cell.Value) / 60
            cell.NumberFormat = "0.00" ' 可修改小数位数,比如"0"或"0.0"
        End If
    Next cell
    Application.EnableEvents = True
End Sub
  1. 保存为「启用宏的工作簿(.xlsm)」,之后在目标列粘贴或输入HH:MM格式的时间,会自动转成十进制小时。

方法Approach2:仅调整显示(底层保留时间值)

如果不需要修改底层数据,只是要把HH:MM显示成十进制小时,可在输入时间后用公式转换:
在单元格输入=TIMEVALUE(A1)*24(A1是输入HH:MM的单元格),再设置单元格格式为0.00。但这种方式需要手动输入公式,没法直接粘贴转换,更推荐方法1。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 18:15:40