AnhThu-1976
Thành viên tích cực
- Tham gia
- 17/10/14
- Bài viết
- 1,061
- Được thích
- 175
Nhờ các anh chị tìm chỗ sai của code
1/ Ở sheet Ton: Dựa vào sheet Nhap và Xuat em muốn
Tính tổng số lượng nhập của từng mã hàng nhập trước ngày 01/02/2019
Tính tổng số lượng xuất của từng mã hàng xuất trước ngày 01/02/2019
Nhưng code trên cho kết quả sai, nhờ anh /chị giúp tìm & chỉ chỗ sai
2/ Em muốn tính ở sheet KetQua như sau
Tính "tổng số lượng nhập trước ngày 01/02/2019" TRỪ "tổng số lượng xuất trước ngày 01/02/2019" (của từng mặt hàng)
lưu ý: chỉ dựa vào 2 sheet Nhap & Xuất, tính thẳng ra kết quả luôn không dựa vào sheet trung gian là sheet "Ton"
Vì cái này mảng trừ mảng nên em không biết
Các anh/chị giúp em 2 câu trên, em xin cảm ơn!
1/ Ở sheet Ton: Dựa vào sheet Nhap và Xuat em muốn
Tính tổng số lượng nhập của từng mã hàng nhập trước ngày 01/02/2019
Tính tổng số lượng xuất của từng mã hàng xuất trước ngày 01/02/2019
Mã:
Sub TonDau()
Dim Dic As Object
Dim DataN As Variant, DataX As Variant, kQArr As Variant
Dim dK1 As String, dK2 As String, dK As String
Dim i As Long, k As Long, a As Long, lrN As Long
Set Dic = CreateObject("Scripting.Dictionary")
'1. Xét ở sheet Nhap
With Sheets("Nhap")
DataN = .Range("A2", .Range("A65535").End(3)).Resize(, 4).Value
For i = 1 To UBound(DataN)
dK1 = DataN(i, 2)
If DataN(i, 1) < Sheets("Ton").Range("C1").Value Then
If Not Dic.exists(dK1) Then
Dic.Add dK1, DataN(i, 3)
Else
Dic.Item(dK1) = Dic.Item(dK1) + DataN(i, 3)
End If
End If
Next
End With
'2. Xét ở sheet Xuat
With Sheets("Xuat")
DataX = .Range("A2", .Range("A65535").End(3)).Resize(, 4).Value
For i = 1 To UBound(DataX)
dK2 = DataX(i, 2)
If DataX(i, 1) < Sheets("Ton").Range("C1").Value Then
If Not Dic.exists(dK2) Then
Dic.Add dK2, DataX(i, 3)
Else
Dic.Item(dK2) = Dic.Item(dK2) + DataX(i, 3)
End If
End If
Next
End With
'3. xét ở sheet Ton
With Sheets("Ton")
kQArr = .Range("A5", .Range("A65535").End(3)).Resize(, 3).Value
For i = 1 To UBound(kQArr)
dK1 = kQArr(i, 1)
kQArr(i, 2) = Dic.Item(dK1)
kQArr(i, 3) = Dic.Item(dK2)
Next
'4. GÁN KẾT QUẢ XUỐNG
.Range("A5:C6").Clear
.Range("A5:C6") = kQArr
End With
End Sub
2/ Em muốn tính ở sheet KetQua như sau
Tính "tổng số lượng nhập trước ngày 01/02/2019" TRỪ "tổng số lượng xuất trước ngày 01/02/2019" (của từng mặt hàng)
lưu ý: chỉ dựa vào 2 sheet Nhap & Xuất, tính thẳng ra kết quả luôn không dựa vào sheet trung gian là sheet "Ton"
Vì cái này mảng trừ mảng nên em không biết
Các anh/chị giúp em 2 câu trên, em xin cảm ơn!