bongmaihung
Thành viên hoạt động



- Tham gia
- 7/8/14
- Bài viết
- 173
- Được thích
- 39
Mã:
Sub TK_THANG()
Dim Sarr, Darr(1 To 65536, 1 To 5), i As Long, k As Long, j As Long, Tungay, Denngay, TMP
Dim Dic As Object, Ws As Worksheet
Set Dic = CreateObject("Scripting.Dictionary")
With Sheets("TK_THANG")
Tungay = .[D2]
Denngay = .[D3]
End With
For Each Ws In Worksheets
If Ws.Name = "V-ban" Or Ws.Name = "KDT-ban" Then
Sarr = Ws.Range("A3", Ws.[A65000].End(3)).Resize(, 4).Value
For i = 1 To UBound(Sarr, 1)
TMP = Sarr(i, 2)
If Sarr(i, 1) >= Tungay And Sarr(i, 1) <= Denngay Then
If Not Dic.exists(TMP) Then
k = k + 1
Dic.Add TMP, k
Darr(k, 1) = Sarr(i, 2)
Darr(k, 2) = Sarr(i, 3)
If Ws.Name = "V-ban" Then
Darr(k, 3) = Sarr(i, 4)
Else
Darr(k, 4) = Sarr(i, 4)
End If
Else
If Ws.Name = "V-ban" Then
Darr(Dic.Item(TMP), 3) = Darr(Dic.Item(TMP), 3) + Sarr(i, 4)
Else
Darr(Dic.Item(TMP), 4) = Darr(Dic.Item(TMP), 4) + Sarr(i, 4)
End If
Darr(Dic.Item(TMP), 5) = Darr(Dic.Item(TMP), 4) + Darr(Dic.Item(TMP), 3)
End If
End If
Next i
End If
Next Ws
With Sheets("TK_THANG")
If k Then
.[A6:E65000].ClearContents
.[A6].Resize(k, 5).Value = Darr
End If
End With
Set Dic = Nothing
End Sub
Chi tiết em gửi theo file , nhờ anh chị giúp đỡ

