Мне нужно убедиться, что пользователи определенной таблицы вводят данные о времени по военному времени. Я обнаружил, что некоторые люди пропускают двоеточие, и это вызывает проблемы. Есть ли способ принудительно задать определенное форматирование для диапазона ячеек?
решение1
Я использую Excel 2010, поэтому не уверен, есть ли аналогичная опция в Excel 2003.
- Выберите ячейки, которые вы хотите ограничить.
- Отформатируйте ячейки, используя соответствующий числовой формат «чч:мм».
- В ленте (может быть, меню) «Данные» выберите «Проверка данных».
- В разделе «Настройки», «Критерии проверки» установите:
Разрешить = Время
Игнорировать пустое = Да
Данные = между
Время начала = 0:00
Время окончания = 23:59:59
(глупая штука не принимает «меньше 24:00») - Пользовательское «Оповещение об ошибке», установить:
Стиль = Стоп
Заголовок = Ввод времени
Сообщение об ошибке = Введите время в формате чч:мм с двоеточием. - Нажмите «ОК».
решение2
Старый пост, но это может помочь некоторым при поиске в Google (к тому же я не эксперт по 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 (макрос) позаботился о вводе времени в указанный столбец или диапазон.Этот макрос преобразует любое четырехзначное значение в соответствующий формат времени.
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")
также.