Tôi có dữ liệu ở cột C nhìn vào thì đúng là thời gian, nhưng định dạng của dữ liệu chỉ là dạng text
Mong GPE giúp đỡ chuyển file dữ liệu của tôi thành định dạng thời gian bằng Code VBA ra cột D để tôi có thể áp dụng cộng trừ thời gian, mong GPE giúp đỡ để tôi có dịp học hỏi, rất cảm ơn !
Câu trả lời tốt nhất:
Cảm ơn sự giúp đỡ của Thầy Ba Tê
Bạn có thể xài tạm cái ni:
Function DateValue(StrC As String)
Dim VTr As Integer, Ng As Integer, Th As Integer, Nm As Long, Gio As Integer, Ft As Integer
Const FC As String = "/"
VTr = InStr(StrC, ":"): Gio = CInt(Left(StrC, VTr – 1))
StrC = Mid(StrC, VTr + 1, Len(StrC))
VTr = InStr(StrC, " "): Ft = CInt(Left(StrC, VTr – 1))
Nm = CLng(Right(StrC, 4)): StrC = Mid(StrC, VTr + 1, Len(StrC))
VTr = InStr(StrC, FC): Ng = CInt(Left(StrC, VTr – 1))
Th = CInt(Mid(StrC, VTr + 1, 2))
DateValue = DateSerial(Nm, Th, Ng) + TimeSerial(Gio, Ft, 0)
End Function
Với dữ liệu "y chang" cột C, bạn Format cột E kiểu "mm/dd/yyyy hh:m:ss AM/PM" rồi chạy cod enày:
Public Sub GPE()
Dim sArr(), dArr(), I As Long, R As Long, Txt As String, Ngay As Long, Gio As Double
sArr = Range("C4", Range("C4").End(xlDown)).Value
R = UBound(sArr): ReDim dArr(1 To R, 1 To 1)
For I = 1 To R
Txt = sArr(I, 1)
Ngay = DateSerial(Right(Txt, 4), Mid(Txt, 10, 2), Mid(Txt, 7, 2))
Gio = TimeSerial(Left(Txt, 2), Mid(Txt, 4, 2), 0)
dArr(I, 1) = Ngay + Gio
Next I
Range("E4").Resize(R) = dArr
End Sub
www.giaiphapexcel.com/diendan/threads/chuy%E1%BB%83n-d%E1%BB%AF-li%E1%BB%87u-v%E1%BB%81-%C4%91%C3%BAng-%C4%91%E1%BB%8Bnh-d%E1%BA%A1ng-th%E1%BB%9Di-gian-b%E1%BA%B1ng-vba.124552/
Thiết kế Tổng đãi ngộ (Total Rewards) theo khung SHRM
Khóa học “Thiết kế Tổng phần thưởng (Total Reward) chuẩn khung SHRM” giúp bạn nắm vững toàn bộ hệ thống đãi ngộ theo chuẩn...
Xem khóa học