ChanhTQ@
0901452không62
- Tham gia
- 5/9/08
- Bài viết
- 4,254
- Được thích
- 4,861
BÀI 1: XÁC ĐỊNH TỔNG SỐ LƯỢNG CÁC MÃ HÀNG THEO CÁC ĐƠN ĐẶT HÀNG
Em có một cái file báo cáo các mặt hàng từ đơn đặt hàng các tháng 4 tới hết tháng 8 của 1 năm.
trong đó:
Một trang tính chứa mã đơn hàng và số lượng đơn hàng.
Một trang là dùng để làm báo cáo.
Trên “báo cáo” ta lấy mã đơn hàng bỏ ra 3 ký tự cuối (thật ra là lấy đến hết đoạn số ở giữa đơn hàng mà thôi). Ví dụ như MT510BS thì chỉ lấy MT510), rồi tính tổng những đơn hàng có cùng mã đơn để lấy tổng số. Rồi sau đó nhập vào “báo cáo”. (Có những mã hàng không có trong tháng thì nhập số lượng = 0). “Báo cáo” này có nhiều đơn hàng nếu làm bằng tay thì mất quá nhiều thời gian. Có anh chị nào giúp cách khác để cải thiện tốc độ xử lí?
Đây là nội dung macro có trong file đính kèm
PHP:
Option Explicit
Sub TongHop()
Dim Th As Byte, Dd As Byte
Dim Name As String, Ma As String
Dim Sh As Worksheet, WF As Object, Rng As Range, Cls As Range Sheets("Don hang").Select
Set Sh = ThisWorkbook.Worksheets("Bao1 cao")
Set WF = Application.WorksheetFunction
Application.ScreenUpdating = False
For Th = 4 To 8
Name = "Th" & CStr(Th)
Set Rng = Range(Name)
[Da1].Value = Rng(1).Value
For Each Cls In Sh.Range(Sh.[b7], Sh.[b7].End(xlDown))
Ma = Cls.Value: Dd = Len(Ma) - 3
[da2].Value = Mid$(Ma, 1, Dd)
Cls.Offset(, Th - 3).Value = WF.DSum(Rng, Rng(2), [da1:da2])
Next Cls
Next Th
Application.ScreenUpdating = True
Sh.Select: Randomize
[b6].Resize(, Th).Interior.ColorIndex = 34 + 9 * Rnd() \ 1
End Sub

|||.|.||