Có một giải pháp! Đặt mã VBA này trong mô-đun bảng tính của bạn, tức là:
- Mở Trình soạn thảo Visual Basic ( Alt- F11)
- Trong treeview trên cùng bên trái, nhấp đúp vào trang tính bạn muốn nhập thời gian của bạn
- Trong bảng mã trung tâm, đặt mã dưới đây.
- Đóng VBE
Sử dụng mã này:
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
Trong trường hợp bạn đã định dạng phạm vi bạn đang nhập dữ liệu, hãy sử dụng dòng này thay vì dòng đầu tiên:
If Target.Value < 0 Or Target.Value > 1 Then Exit Sub
Lưu ý rằng điều này sẽ thay đổi giá trị và định dạng - mỗi khi bạn nhập một lần - hoặc một cái gì đó nằm trong khoảng từ 0 đến 1! Nếu bạn muốn giới hạn nó trong một cột nhất định, hãy thêm dòng này:
If Target.Column <> 3 Then Exit Sub
hoặc dòng này để giới hạn nó trong một phạm vi nhất định
If Intersect(Target, Range("A2:A100") Is Nothing Then Exit Sub
59
, định dạng ô là[MM]:SS
. Giống như:02:10:45
sau đó sẽ hiển thị như130:45
thay thế. Nhưng dường như điều đó không làm việc cho đầu vào.