Есть решение! Поместите этот VBA код в ваш рабочий модуль, т.е.:
- Откройте редактор Visual Basic Editor (Alt-F11)
- В левом верхнем углу дерева дважды щелкните по листу, на который вы хотите ввести время
- На центральной кодовой панели поместите следующий код.
- Закройте VBE
Используйте этот код:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value < 0 Or Target.Value > 1 And Target.NumberFormat <> "h:mm" Then Exit Sub
Application.EnableEvents = False
Target.Value = Target.Value / 60
Target.NumberFormat = "mm:ss"
Application.EnableEvents = True
End Sub
Если вы уже отформатировали диапазон, в который вводите данные, используйте эту строку вместо первой:
Обратите внимание, что это изменит значение и формат - каждый раз, когда вы вводите либо время - либо что-то, что находится между 0 и 1! Если вы хотите ограничить его определенным столбцом, добавьте эту строку:
If Target.Value < 0 Or Target.Value > 1 Then Exit Sub
или эту строку, чтобы ограничить его определенным диапазоном
If Target.Column <> 3 Then Exit Sub