hoangruazbin
Thành viên mới
- Tham gia
- 27/6/19
- Bài viết
- 32
- Được thích
- 3
Bạn thử code này nhé.Nhờ các bác giúp em lấy dữ liệu theo dõi chấm công bằng vân tay đưa vào báo cáo như file đính kèm.
Cảm ơn các bác!
Sub loc_duLieu()
Application.ScreenUpdating = False
Dim arr, i As Long, a As Long, b As Long, lr As Long, dic As Object, data, dk As String, ngay As Long, j As Integer, vao As Boolean, ra As Boolean
Set dic = CreateObject("scripting.dictionary")
With Sheets("bao_cao")
lr = .Range("B" & Rows.Count).End(xlUp).Row
If lr > 6 Then .Range("E7:Ai" & lr).ClearContents
arr = .Range("B5:Ai" & lr).Value
For i = 3 To UBound(arr)
dk = arr(i, 1)
dic.Item(dk) = i
Next i
For i = 4 To UBound(arr, 2)
ngay = arr(1, i)
dic.Item(ngay) = i
Next i
End With
With Sheets("dulieu")
i = .Range("C" & Rows.Count).End(xlUp).Row
data = .Range("A5:l" & i).Value
For i = 1 To UBound(data)
dk = data(i, 3)
a = dic.Item(dk)
If a Then
ngay = data(i, 1)
b = dic.Item(ngay)
If b Then
vao = False: ra = False
For j = 7 To 12
If data(i, j) <> Empty Then
If Hour(data(i, j)) < 9 Then
vao = True
Else
ra = True
End If
End If
Next j
If vao = False And ra = False Then
arr(a, b) = "V"
ElseIf vao = True And ra = False Then
arr(a, b) = "TR"
ElseIf vao = False And ra = True Then
arr(a, b) = "TV"
Else
arr(a, b) = "D"
End If
End If
End If
Next i
End With
With Sheets("bao_cao")
.Range("B5:Ai" & lr).Value = arr
End With
Application.ScreenUpdating = True
End Sub
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 1
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 2