Есть решение! Поместите этот код VBA в свой модуль рабочего листа, то есть:
- Откройте редактор Visual Basic ( 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
Если вы уже отформатировали диапазон, в который вводите данные, используйте эту строку вместо первой:
If Target.Value < 0 Or Target.Value > 1 Then Exit Sub
Обратите внимание, что это изменит значение и формат - каждый раз, когда вы вводите время - или что-то между 0 и 1! Если вы хотите ограничить его определенным столбцом, добавьте эту строку:
If Target.Column <> 3 Then Exit Sub
или эта строка, чтобы ограничить его до определенного диапазона
If Intersect(Target, Range("A2:A100") Is Nothing Then Exit Sub
59
, отформатируйте ячейку как[MM]:SS
. Как:02:10:45
тогда будет отображаться как130:45
вместо. Но, видимо, это не работает для входов.