Проверка ошибок при вводе данных по времени (Microsoft Excel)
Кинг отмечает, что если ячейка отформатирована как чч: мм или [ч]: мм, и вы случайно введете в ячейку 3: 555, вы получите 12:15 вместо 3:55.
Excel интерпретирует 555 как 555 минут, а не 55 с половиной минут. Он задается вопросом, есть ли способ защититься от таких ошибок ввода данных, поскольку он не может получить подтверждение данных для их обработки.
Король прав; проверка данных не обработает этот тип ошибок. Если вы установите проверку данных, чтобы разрешить ввод времени в ячейку, а затем установите границы с 12:00:00 до 23:59:59 (чтобы можно было любое время), он все равно будет принимать 3: 555 и неверно интерпретировать это как 3 часа 555 минут или 12:15. Поскольку 12:15 находится в допустимом диапазоне времени, проверка данных не вызывает проблем.
Однако проверку данных можно было бы использовать, если вы разделите ввод времени на две ячейки. Разрешите пользователю вводить часы в одну ячейку и минуты в другую, а также используйте проверку данных для обеспечения приемлемых входных параметров для каждой ячейки. Это остановит принятие 555 в качестве допустимого количества минут. Затем вы можете преобразовать две ячейки в допустимое время следующим образом:
=A1/24+B1/(24*60)
Несколько подписчиков предложили использовать макрос, чтобы проверить содержимое ячейки и остановить опечатку. Каждое предложение основывалось на обработчике событий Worksheet_Change, что казалось очень многообещающим. Однако ни одно из предложенных решений не считало запись 3: 555 неправильной. Причина в том, что к тому времени, когда Excel передал управление событию Worksheet_Change, его внутренние процедуры уже проанализировали запись и изменили ее на 12:15. В то время как 3: 555 можно было программно пометить и скорректировать, проанализированное 12:15 не могло — оно по-прежнему считается действительным временем, поэтому оно проходило через любой из макросов Worksheet_Change.
Таким образом, единственным решением на основе макросов будет решение, использующее поле ввода для ввода пользователем времени, которое может быть проверено до того, как макрос вставит его в рабочий лист. Этот подход, однако, кажется гораздо более разрушительным для простого ввода пользователем, чем использование отдельных минутных и секундных ячеек и применение проверки данных к этим ячейкам.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (13248) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365.