Є рішення! Розмістіть цей код VBA у своєму модулі робочого листа, тобто:
- Відкрийте візуальний базовий редактор ( 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
замість цього. Але, мабуть, це не працює для входів.