我需要确保特定电子表格的用户以军用时间输入时间数据。我发现有些人省略了冒号,这会导致问题。有没有办法强制对单元格区域进行特定格式设置?
答案1
我正在使用 Excel 2010,因此我不确定 Excel 2003 中的等效选项在哪里。
- 选择要限制的单元格。
- 使用适当的数字格式“hh:mm”来格式化单元格。
- 在“数据”功能区(菜单,可能是?)中,选择“数据验证”。
- 在“设置”下的“验证标准”中,设置:
允许 = 时间
忽略空白 = 是
数据 = 之间
开始时间 = 0:00
结束时间 = 23:59:59
(愚蠢的事情不会接受“少于 24:00”) - 用户“错误警报”,设置:
样式 = 停止
标题 = 时间输入
错误消息 = 请以 hh:mm 格式输入带有冒号的时间。 - 按“确定”。
答案2
旧帖,但这可能有助于谷歌搜索(我也不是 Excel 专家)
使用自定义格式将单元格格式化为文本
00\:00
这将允许用户在单元格中输入军事时间而无需“:”使用以下公式将单元格(例如 E16)上的数据验证选项设置为自定义
=AND(ISNUMBER(E16),(VALUE(LEFT(TEXT(E16,"00\:00"),2))>=0),(VALUE(LEFT(TEXT(E16,"00\:00"),2))<=23),(VALUE(RIGHT(TEXT(E16,"00\:00"),2))>=0),(VALUE(RIGHT(TEXT(E16,"00\:00"),2))<=59))
验证检查它是否是一个数字,然后检查时间值的 HH 端是否在 0 到 23 之间,然后检查 MM 是否在 0 到 59 之间。
答案3
我使用同样的东西来限制军事时间,然而,数据验证接受手误输入的整数(冒号后三位数字),然后显示不正确时间。例如,如果你想输入13:44浪费你的时间,并意外地13:444,它不仅接受它,而且显示时间20:24
那20:24时间就是我输入的小时数 (13) 加上 444 分钟,转换为小时:分钟 (7:24),因此不是所需的13:44它给13:00+7:24或者20:24。
现在,我理解了数学原理,也理解了 Excel 为何将 444 分钟转换为 7:24,但这不应该出现在数据验证条目中。由于这是数据验证,因此它应该将 444 截断为 44 或给出错误消息。
答案4
我建议 VBA(宏)负责指定列或范围内的时间输入。此宏将把任何 4 位数值转换为适当的时间格式。
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
Dim xHour As String
Dim xMinute As String
Dim xWord As String
Application.EnableEvents = False
xWord = Format(Target.Value, "0000")
xHour = Left(xWord, 2)
xMinute = Right(xWord, 2)
On Error Resume Next
Target.Value = TimeValue(xHour & ":" & xMinute)
On Error Resume Next
Application.EnableEvents = True
End Sub
注意:
- 如果输入
1725
宏将会将其转换为05:25:00 PM
。 Range ("A:A")
是可编辑的,它应该Range("A1:A10")
或者Range("B10:C10")
也。