5

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

4 ответа4

5

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

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

Старый пост, но это может помочь в поиске в Google (также я не эксперт по Excel)

  1. Отформатируйте ячейку как текст с пользовательским форматом 00\:00
    Это позволит пользователям вводить военное время в ячейку без ":"

  2. Установите параметры проверки данных в ячейке (EG 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.

0

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

0

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

NB

  • Если вы введете 1725 макрос преобразует его в 05:25:00 PM .
  • Range ("A:A") является редактируемым, он также должен быть Range("A1:A10") или Range("B10:C10") .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .