如何强制用户在输入时间数据时使用特定格式?

如何强制用户在输入时间数据时使用特定格式?

我需要确保特定电子表格的用户以军用时间输入时间数据。我发现有些人省略了冒号,这会导致问题。有没有办法强制对单元格区域进行特定格式设置?

答案1

我正在使用 Excel 2010,因此我不确定 Excel 2003 中的等效选项在哪里。

  1. 选择要限制的单元格。
  2. 使用适当的数字格式“hh:mm”来格式化单元格。
  3. 在“数据”功能区(菜单,可能是?)中,选择“数据验证”。
  4. 在“设置”下的“验证标准”中,设置:
    允许 = 时间
    忽略空白 = 是
    数据 = 之间
    开始时间 = 0:00
    结束时间 = 23:59:59
    (愚蠢的事情不会接受“少于 24:00”)
  5. 用户“错误警报”,设置:
    样式 = 停止
    标题 = 时间输入
    错误消息 = 请以 hh:mm 格式输入带有冒号的时间。
  6. 按“确定”。

答案2

旧帖,但这可能有助于谷歌搜索(我也不是 Excel 专家)

  1. 使用自定义格式将单元格格式化为文本00\:00
    这将允许用户在单元格中输入军事时间而无需“:”

  2. 使用以下公式将单元格(例如 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")也。

相关内容