Private Sub NXTThang(ByVal Thang As Long)
Dim ArrNhap, ArrXuat, FindCll1 As Range, FindCll2 As Range, i As Long, ViTri
With Sheet1.Range(Sheet1.[A2], Sheet1.[E65536].End(xlUp))
Set FindCll1 = .Resize(, 1).Find(Thang, .Resize(1, 1), xlFormulas, 1, , 1)
Set FindCll2 = .Resize(, 1).Find(Thang, .Resize(1, 1), xlFormulas, 1, , 2)
End With
If Not FindCll1 Is Nothing Then ArrNhap = Sheet1.Range(FindCll1, FindCll2).Resize(, 5)
With Sheet2.Range(Sheet2.[A2], Sheet2.[D65536].End(xlUp))
Set FindCll1 = .Resize(, 1).Find(Thang, .Resize(1, 1), xlFormulas, 1, , 1)
Set FindCll2 = .Resize(, 1).Find(Thang, .Resize(1, 1), xlFormulas, 1, , 2)
End With
If Not FindCll1 Is Nothing Then ArrXuat = Sheet2.Range(FindCll1, FindCll2).Resize(, 4)
If TypeName(ArrNhap) <> "Empty" Then
For i = 1 To UBound(ArrNhap, 1)
If DSHH.Exists(ArrNhap(i, 2)) Then
KetQua(7, DSHH.Item(ArrNhap(i, 2))) = KetQua(7, DSHH.Item(ArrNhap(i, 2))) + ArrNhap(i, 4)
KetQua(8, DSHH.Item(ArrNhap(i, 2))) = KetQua(8, DSHH.Item(ArrNhap(i, 2))) + ArrNhap(i, 5)
Else
SoDong = SoDong + 1
ReDim Preserve KetQua(1 To 12, 1 To SoDong)
STT = STT + 1
KetQua(1, SoDong) = Thang
KetQua(2, SoDong) = STT
KetQua(3, SoDong) = ArrNhap(i, 2)
KetQua(4, SoDong) = ArrNhap(i, 3)
KetQua(7, SoDong) = ArrNhap(i, 4)
KetQua(8, SoDong) = ArrNhap(i, 5)
DSHH.Add KetQua(3, SoDong), SoDong
End If
Next
End If
If TypeName(ArrXuat) <> "Empty" Then
For i = 1 To UBound(ArrXuat, 1)
If DSHH.Exists(ArrXuat(i, 2)) Then
KetQua(9, DSHH.Item(ArrXuat(i, 2))) = KetQua(9, DSHH.Item(ArrXuat(i, 2))) + ArrXuat(i, 4)
Else
SoDong = SoDong + 1
ReDim Preserve KetQua(1 To 12, 1 To SoDong)
STT = STT + 1
KetQua(1, SoDong) = Thang
KetQua(2, SoDong) = STT
KetQua(3, SoDong) = ArrXuat(i, 2)
KetQua(4, SoDong) = ArrXuat(i, 3)
KetQua(9, SoDong) = ArrXuat(i, 4)
DSHH.Add KetQua(3, SoDong), SoDong
End If
Next
End If
For Each ViTri In DSHH.Items
If KetQua(5, ViTri) + KetQua(7, ViTri) <> 0 Then
KetQua(10, ViTri) = KetQua(9, ViTri) * (KetQua(6, ViTri) + KetQua(8, ViTri)) / (KetQua(5, ViTri) + KetQua(7, ViTri))
End If
KetQua(11, ViTri) = KetQua(5, ViTri) + KetQua(7, ViTri) - KetQua(9, ViTri)
KetQua(12, ViTri) = KetQua(6, ViTri) + KetQua(8, ViTri) - KetQua(10, ViTri)
Next
If TypeName(ArrNhap) <> "Empty" Then Erase ArrNhap
If TypeName(ArrXuat) <> "Empty" Then Erase ArrXuat
End Sub