Cần giúp đỡ về hàm liên quan đến giờ/phút (time) (1 người xem)

Người dùng đang xem chủ đề này

huangocthanhtam

Thành viên chính thức
Tham gia
10/6/13
Bài viết
98
Được thích
3
Chào mọi người.

Mong mọi người giúp 1 bài toán sau: nhân viên của mình ngày nào cũng phải nhập vào 2 cột giờ ra và giờ vào ( VD: vsò: 7:30 ra: 15:30) và làm thêm 1 cột để tính tổng thới gian (ra - vào)
Để nhập được 7:30 là phải bấm số 7 shift : mất khá nhiều thao tác. Có cách nào mình chỉ cần nhập 730 excel tự hiểu (biến thành) 7:30 không ??
Mình type trên điện thoại nên hơi khó trình bày

Cảm ơn mọi người
 
Chào mọi người.

Mong mọi người giúp 1 bài toán sau: nhân viên của mình ngày nào cũng phải nhập vào 2 cột giờ ra và giờ vào ( VD: vsò: 7:30 ra: 15:30) và làm thêm 1 cột để tính tổng thới gian (ra - vào)
Để nhập được 7:30 là phải bấm số 7 shift : mất khá nhiều thao tác. Có cách nào mình chỉ cần nhập 730 excel tự hiểu (biến thành) 7:30 không ??
Mình type trên điện thoại nên hơi khó trình bày

Cảm ơn mọi người
Cái này phải dùng Macro thì mới được nhé bạn. Hàm chỉ chuyển đổi qua một cột trung gian khi đã có giá trị chứ không sửa trực tiếp được. Macro thì bạn dùng code sau (cho code vào sheet nhập liệu, sửa A1:B20 thành vùng tương ứng với file của bạn)
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Intersect(Target, Me.Range("A1:B20")) Is Nothing Then Exit Sub
    Dim Val As String
    Val = Target.Value
    If Not VBA.IsNumeric(Val) Then Exit Sub
    If Len(Val) > 4 Then Exit Sub
    Val = Right("000" & Val, 4)
    Application.EnableEvents = False
    Target.Value = VBA.TimeSerial(CLng(Left(Val, 2)), Right(Val, 2), 0)
    Application.EnableEvents = True
End Sub
 
Cái này phải dùng Macro thì mới được nhé bạn. Hàm chỉ chuyển đổi qua một cột trung gian khi đã có giá trị chứ không sửa trực tiếp được. Macro thì bạn dùng code sau (cho code vào sheet nhập liệu, sửa A1:B20 thành vùng tương ứng với file của bạn)
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Intersect(Target, Me.Range("A1:B20")) Is Nothing Then Exit Sub
    Dim Val As String
    Val = Target.Value
    If Not VBA.IsNumeric(Val) Then Exit Sub
    If Len(Val) > 4 Then Exit Sub
    Val = Right("000" & Val, 4)
    Application.EnableEvents = False
    Target.Value = VBA.TimeSerial(CLng(Left(Val, 2)), Right(Val, 2), 0)
    Application.EnableEvents = True
End Sub
Đã thành công theo cách này rồi a, à em cũng nghiêm thêm dc 1 cách sử dung hàm vẫn làm dc nhé :D
 
Đã thành công theo cách này rồi a, à em cũng nghiêm thêm dc 1 cách sử dung hàm vẫn làm dc nhé :D
Tôi đâu có nói là không được. Tôi nói là dùng hàm bạn phải cho kết quả ra ô khác. nếu bạn dùng hàm cho kết quả trực tiếp trên ô nhập thì xin bái phục.
 
Chào mọi người.

Mong mọi người giúp 1 bài toán sau: nhân viên của mình ngày nào cũng phải nhập vào 2 cột giờ ra và giờ vào ( VD: vsò: 7:30 ra: 15:30) và làm thêm 1 cột để tính tổng thới gian (ra - vào)
Để nhập được 7:30 là phải bấm số 7 shift : mất khá nhiều thao tác. Có cách nào mình chỉ cần nhập 730 excel tự hiểu (biến thành) 7:30 không ??
Mình type trên điện thoại nên hơi khó trình bày

Cảm ơn mọi người
lỡ nhập trường hợp này thì sao: 113 nên hiểu là 11h 3 phút hay 1h 13 phút
 

Bài viết mới nhất

Back
Top Bottom