Hong.Van
Busy
- Tham gia
- 7/5/12
- Bài viết
- 2,330
- Được thích
- 1,767
Em chào Thầy cô & anh chị
Xin giúp em chỉnh sửa code sau:
Tại Sheet CNT01, Khi chạy code em muốn kết quả tại cột F & G
Dựa vào cột B (mã khách hàng) và cell A7 là mã tháng
Sheet Data là nơi để lấy số liệu
Các mã :131, 331, 1388, 3388 là mã Tổng
Nếu Mã là 131 thì có các mã con có ký tự đầu là B
Nếu Mã là 331 thì có các mã con có ký tự đầu là M
Nếu Mã là 1388 thì có các mã con có ký tự đầu là Y
Nếu Mã là 3388 thì có các mã con có ký tự đầu là Z
-----------
Cthức cho các mã như sau:
Nếu là mã tổng, ví dụ mã 131 thì công thức là
cell F11=SUMPRODUCT((Data!$E$10:$E$255=$A$7)*(Data!$I$10:$I$255=131)*(Data!$K$10:$K$255))
Cell G11=SUMPRODUCT((Data!$E$10:$E$255=$A$7)*(Data!$J$10:$J$255=131)*(Data!$K$10:$K$255))
Nếu là mã con, ví dụ mã BKVL
cell F12=SUMPRODUCT((Data!$E$10:$E$255=$A$7)*(Data!$I$10:$I$255=$B$11)*(Data!$G$10:$G$255=$B12)*(Data!$K$10:$K$255))
Cell G12=SUMPRODUCT((Data!$E$10:$E$255=$A$7)*(Data!$J$10:$J$255=$B$11)*(Data!$G$10:$G$255=$B12)*(Data!$K$10:$K$255))
(Em có công thức ở cột F & G tại Sheet CNT01)
-------------
Dựa vào các cthức trên , em viết code như sau
(code trên em chỉ viết tạm cho mã 131 và mã có nhóm có ký tự đầu tiên là B)
Code trên không chạy và báo lỗi (các dòng màu đỏ)
Vui lòng hướng dẫn em chỗ sai
Nếu trường hợp không sửa được thì em nhờ Thầy cô & anh chị viết giúp em code khác dạng như trên
Em cảm ơn!
Xin giúp em chỉnh sửa code sau:
Tại Sheet CNT01, Khi chạy code em muốn kết quả tại cột F & G
Dựa vào cột B (mã khách hàng) và cell A7 là mã tháng
Sheet Data là nơi để lấy số liệu
Các mã :131, 331, 1388, 3388 là mã Tổng
Nếu Mã là 131 thì có các mã con có ký tự đầu là B
Nếu Mã là 331 thì có các mã con có ký tự đầu là M
Nếu Mã là 1388 thì có các mã con có ký tự đầu là Y
Nếu Mã là 3388 thì có các mã con có ký tự đầu là Z
-----------
Cthức cho các mã như sau:
Nếu là mã tổng, ví dụ mã 131 thì công thức là
cell F11=SUMPRODUCT((Data!$E$10:$E$255=$A$7)*(Data!$I$10:$I$255=131)*(Data!$K$10:$K$255))
Cell G11=SUMPRODUCT((Data!$E$10:$E$255=$A$7)*(Data!$J$10:$J$255=131)*(Data!$K$10:$K$255))
Nếu là mã con, ví dụ mã BKVL
cell F12=SUMPRODUCT((Data!$E$10:$E$255=$A$7)*(Data!$I$10:$I$255=$B$11)*(Data!$G$10:$G$255=$B12)*(Data!$K$10:$K$255))
Cell G12=SUMPRODUCT((Data!$E$10:$E$255=$A$7)*(Data!$J$10:$J$255=$B$11)*(Data!$G$10:$G$255=$B12)*(Data!$K$10:$K$255))
(Em có công thức ở cột F & G tại Sheet CNT01)
-------------
Dựa vào các cthức trên , em viết code như sau
Mã:
Sub PhatSinh() Dim sArray
Dim i As Long
Dim n1 As Range, n2 As Range, n3 As Range, n4 As Range, n5 As Range, n6 As Range, n7 As Range, n8 As Range
Dim B As String, M As String, Y As String, Z As String
Dim Wf As WorksheetFunction
Set Wf = WorksheetFunction
With ActiveSheet
Set n7 = .Range(.[B11], .[B65536].End(3))
sArray = n7.Resize(, 6).Value
Set n8 = .Range(.[A7])
End With
With Sheets("Data")
Set n1 = .Range(.[B10], .[B65536].End(3))
Set n2 = n1.Offset(, 3) ' cot E
Set n3 = n1.Offset(, 5) ' cot G
Set n4 = n1.Offset(, 7) ' cot I
Set n5 = n1.Offset(, 8) ' cot J
Set n6 = n1.Offset(, 9) ' cot K
End With
For i = 1 To UBound(sArray, 1)
If Not IsNumeric(sArray(i, 1)) Then
If Left(sArray(i, 1), 1) = "B" Then
[COLOR=#ff0000] sArray(i, 5) = Wf.SumProduct((n2 = n8) * (n3 = sArray(i, 1)) * (n4 = 131) * n6)
sArray(i, 6) = Wf.SumProduct((n2 = n8) * (n3 = sArray(i, 1)) * (n5 = 131) * n6)[/COLOR]
End If
End If
If IsNumeric(sArray(i, 1)) Then
If sArray(i, 1) = 131 Then
[COLOR=#ff0000] sArray(i, 5) = Wf.SumProduct((n2 = n8) * (n4 = 131) * n6)
sArray(i, 6) = Wf.SumProduct((n2 = n8) * (n5 = 131) * n6)[/COLOR]
End If
End If
Next i
n7.Resize(, 6).Value = sArray
End Sub
Code trên không chạy và báo lỗi (các dòng màu đỏ)
Vui lòng hướng dẫn em chỗ sai
Nếu trường hợp không sửa được thì em nhờ Thầy cô & anh chị viết giúp em code khác dạng như trên
Em cảm ơn!