Tách số tiền chi tiết theo từng mã đơn vị bằng VBA

Liên hệ QC

thinhnx22

Thành viên hoạt động
Tham gia
22/12/15
Bài viết
182
Được thích
38
Trong file đính kèm, em cần tách chi tiết số tiền theo từng mã đơn vị. Em có mô tả cách làm trong file. Anh chị và các bạn hỗ trợ em với ạ. Em cảm ơn.
 

File đính kèm

  • test2.xlsb
    22.4 KB · Đọc: 22
Trong file đính kèm, em cần tách chi tiết số tiền theo từng mã đơn vị. Em có mô tả cách làm trong file. Anh chị và các bạn hỗ trợ em với ạ. Em cảm ơn.
Thấy trong file có code đó chưa đáp ứng được việc bạn muốn à
 
Upvote 0
Thấy trong file có code đó chưa đáp ứng được việc bạn muốn à
Đây này bạn:
Trong đó mình cũng code cho bạn ấy, nhưng điều kiện tăng lên, bạn ấy nói chạy ra kết quả sai. sau đó bạn dùng code của anh bebo021..... Nếu có thời gian bạn xem code của mình trong đó giải thuật có gì sai không mà không ra kết quả mong đợi. Trân trọng.
 
Upvote 0
Đây này bạn:
Trong đó mình cũng code cho bạn ấy, nhưng điều kiện tăng lên, bạn ấy nói chạy ra kết quả sai. sau đó bạn dùng code của anh bebo021..... Nếu có thời gian bạn xem code của mình trong đó giải thuật có gì sai không mà không ra kết quả mong đợi. Trân trọng.
Em chào anh. Đầu tiên xin cảm ơn anh vì đã hỗ trợ và giúp em ỏ chủ đề trước. Khi em thêm dữ liệu trong chủ đề trước thì chưa ra được kết quả mong muốn (Lúc đầu em sợ để dữ liệu dài quá thì mọi người khó hình dung, còn code lần đầu của anh với dữ liệu của em thì đúng rồi ạ). Nhưng em luôn trân trọng sự hỗ trợ của anh và các bạn trong diễn đàn. Còn ỏ chủ đề hiện tại, em đang thử theo phương án 2. Nếu phương án nào dễ làm hơn thì em sẽ áp dụng anh ạ. Em cảm ơn anh đã quan tâm đến chủ đề của em.
 
Upvote 0
Chắc mình quên chưa xoá code của file khác bạn ạ.
Test tạm. Hên xui. . .
Mã:
Option Explicit

Sub ABC()
Dim sArr(), Arr(), Res(), i&, ii&, K&, iR&
With Sheets("Bang2")
    iR = .Range("A" & Rows.Count).End(3).Row
    sArr = .Range("A2:B" & iR).Value
End With
With Sheets("Bang1")
    iR = .Range("A" & Rows.Count).End(3).Row
    Arr = .Range("A2:D" & iR).Value
End With
ReDim Res(1 To UBound(sArr) * UBound(Arr) + UBound(Arr) - 1, 1 To 5)
For i = 1 To UBound(Arr)
    For ii = 1 To UBound(sArr)
        K = K + 1
        Res(K, 1) = Arr(i, 1)
        Res(K, 2) = Arr(i, 2)
        Res(K, 3) = Arr(i, 3)
        Res(K, 4) = sArr(ii, 1)
        Res(K, 5) = Arr(i, 4) * sArr(ii, 2)
    Next
    K = K + 1
Next
Sheets("Ketqua").Range("I2").Resize(K - 1, 5).Value = Res
End Sub
 
Upvote 0
Test tạm. Hên xui. . .
Mã:
Option Explicit

Sub ABC()
Dim sArr(), Arr(), Res(), i&, ii&, K&, iR&
With Sheets("Bang2")
    iR = .Range("A" & Rows.Count).End(3).Row
    sArr = .Range("A2:B" & iR).Value
End With
With Sheets("Bang1")
    iR = .Range("A" & Rows.Count).End(3).Row
    Arr = .Range("A2:D" & iR).Value
End With
ReDim Res(1 To UBound(sArr) * UBound(Arr) + UBound(Arr) - 1, 1 To 5)
For i = 1 To UBound(Arr)
    For ii = 1 To UBound(sArr)
        K = K + 1
        Res(K, 1) = Arr(i, 1)
        Res(K, 2) = Arr(i, 2)
        Res(K, 3) = Arr(i, 3)
        Res(K, 4) = sArr(ii, 1)
        Res(K, 5) = Arr(i, 4) * sArr(ii, 2)
    Next
    K = K + 1
Next
Sheets("Ketqua").Range("I2").Resize(K - 1, 5).Value = Res
End Sub
Mình test vào cơ sở dữ liệu đầy đủ kết quả ra ok rồi bạn nhé. Cảm ơn bạn nhiều.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom