Answers:
正如Steve回答的那样,Excel将用户输入解释12:33
为12h33m。您不能更改Excel接受用户输入的这种行为。
正如您在评论中提到的那样,用户会输入,12:33
但意思是12分33秒。
这是一种变通方法,可获取正确的计算值。
12:33
)的格式设置为[h]:mm
=A1/60
在单元格B1中输入公式[m]:ss
显示的值应与A1和B1中的相同。但是,B1将是您想要的实际值。
TIMEVALUE
转换的方法。
[h]
和[m]
有解决办法!将此VBA代码放在您的工作表模块中,即:
使用此代码:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value < 0 Or Target.Value > 1 And Target.NumberFormat <> "h:mm" Then Exit Sub
Application.EnableEvents = False
Target.Value = Target.Value / 60
Target.NumberFormat = "mm:ss"
Application.EnableEvents = True
End Sub
如果您已经格式化了要输入数据的范围,请使用以下行作为第一行:
If Target.Value < 0 Or Target.Value > 1 Then Exit Sub
请注意,这将更改值和格式(每次输入时间)或0到1之间的值!如果要将其限制为某一列,请添加以下行:
If Target.Column <> 3 Then Exit Sub
或将此行限制在一定范围内
If Intersect(Target, Range("A2:A100") Is Nothing Then Exit Sub
突出显示所需的单元格/列作为“持续时间”,右键单击鼠标以“设置单元格格式”。如果要以小时和分钟格式输入持续时间,请转到“自定义”并查找“ h:mm”。如果您还想包括秒,请单击“ h:mm:ss”。之后,您甚至可以将总持续时间加起来。
希望这可以帮助。
我遇到了同样的问题,这是我找到的解决方案:使用TIME
函数输入公式,该函数将创建一个时间矩阵,=TIME(H,M,S)
并根据需要设置其格式。您仍然需要每次输入0小时,因为数学,但这使整个过程变得无限可行。
59
,请将单元格设置为[MM]:SS
。像:02:10:45
将显示为130:45
。但这显然不适用于输入。