Nếu có thể bạn up đoạn code mà bạn đã sửa lại theo ý bạn cho là đúng lên được không?Hoặc diễn giải đoạn code mà bạn làm và cho là đúng để mọi cùng ngưỡng mộ có được không?
Khi trả bài tôi đã nói là làm theo ý hiểu của tôi mà, và nói bạn tham khảo mà.
Sơ bộ diễn giải code của tôi (sửa lại code của bạn) là
1- Đưa roàn bộ vùng dũ liệu vào mảng
2- Xét Nếu cột G=MaKho thỏa thì xét Cột B<Từ ngày nếu thỏa thì =TonDau+Nhập-Xuất- Hong nếu không thì xét tiếp nếu Cột B>= Từ ngày nếu theo thỏa thì ta thu được Nhập trong kỳ, và xuất trong kỳ nếu không thỏa thì bỏ qua.
3. sau khi hết vòng lặp ta thu được : tonDau, NhapTrongKy, XuatTrongKy và từ đó tính ra TonCuoi và gán các kết quả xuống sheet.
Tất nhiên là tôi không phải là làm công việc như bạn và có phần kém tinh anh nên không thể hiểu đúng ý bạn được.
Bạn chờ người khác hỗ trợ nhé, "....mọi người chữa giúp mình . xin cảm ơn...". tôi dừng tại đây.
dạ file đây ạ em cảm ơn
Và dể cho đơn giản hơn thì em dùng hàm sumifs với code sau :
Sub tondau1()
Application.ScreenUpdating = False
With Sheet2
Sheet2.Range("K1").Value = "=SUMIFS(Sheet1!L:L,Sheet1!B:B,""<""&Sheet2!$B$1,Sheet1!C:C,Sheet2!$B$4,Sheet1!G:G,Sheet2!$B$3) -SUMIFS(Sheet1!N:N,Sheet1!B:B,""<""&Sheet2!$B$1,Sheet1!C:C,Sheet2!$B$4,Sheet1!G:G,Sheet2!$B$3)-SUMIFS(Sheet1!O:O,Sheet1!B:B,""<""&Sheet2!$B$1,Sheet1!C:C,Sheet2!$B$4,Sheet1!G:G,Sheet2!$B$3)"
Sheet2.Range("K1").Value = Sheet2.Range("K1").Value
Sheet2.Range("K2").Value = "=SUMIFS(Sheet1!L:L,Sheet1!B:B,"">=""&Sheet2!$B$1,Sheet1!C:C,Sheet2!$B$4,Sheet1!G:G,Sheet2!$B$3,Sheet1!B:B,""<=""&Sheet2!$B$2)"
Sheet2.Range("K2").Value = Sheet2.Range("K2").Value
Sheet2.Range("K3").Value = "=SUMIFS(Sheet1!N:N,Sheet1!B:B,"">=""&Sheet2!$B$1,Sheet1!C:C,Sheet2!$B$4,Sheet1!G:G,Sheet2!$B$3,Sheet1!B:B,""<=""&Sheet2!$B$2)+SUMIFS(Sheet1!O:O,Sheet1!B:B,"">=""&Sheet2!$B$1,Sheet1!C:C,Sheet2!$B$4,Sheet1!G:G,Sheet2!$B$3,Sheet1!B:B,""<=""&Sheet2!$B$2)"
Sheet2.Range("K3").Value = Sheet2.Range("K3").Value
Range("K4").Value = "=K1+K2-K3"
Range("K4").Value = Range("K4").Value
End With
Application.ScreenUpdating = True
end sub
Dù đúng cú pháp nhưng nó vẫn chỉ trả về 0