Как заставить пользователя использовать определенный формат при вводе данных о времени?

Как заставить пользователя использовать определенный формат при вводе данных о времени?

Мне нужно убедиться, что пользователи определенной таблицы вводят данные о времени по военному времени. Я обнаружил, что некоторые люди пропускают двоеточие, и это вызывает проблемы. Есть ли способ принудительно задать определенное форматирование для диапазона ячеек?

решение1

Я использую Excel 2010, поэтому не уверен, есть ли аналогичная опция в Excel 2003.

  1. Выберите ячейки, которые вы хотите ограничить.
  2. Отформатируйте ячейки, используя соответствующий числовой формат «чч:мм».
  3. В ленте (может быть, меню) «Данные» выберите «Проверка данных».
  4. В разделе «Настройки», «Критерии проверки» установите:
    Разрешить = Время
    Игнорировать пустое = Да
    Данные = между
    Время начала = 0:00
    Время окончания = 23:59:59
    (глупая штука не принимает «меньше 24:00»)
  5. Пользовательское «Оповещение об ошибке», установить:
    Стиль = Стоп
    Заголовок = Ввод времени
    Сообщение об ошибке = Введите время в формате чч:мм с двоеточием.
  6. Нажмите «ОК».

решение2

Старый пост, но это может помочь некоторым при поиске в Google (к тому же я не эксперт по 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 (макрос) позаботился о вводе времени в указанный столбец или диапазон.Этот макрос преобразует любое четырехзначное значение в соответствующий формат времени.

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")также.

Связанный контент