Giúp em dùng code VBA với các bác! (3 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Status
Không mở trả lời sau này.

Duong_VBA

Thành viên chính thức
Tham gia
10/11/07
Bài viết
89
Được thích
26
Em có bài toán này: -Tại cột A, từ A1 đến A11 có tên 11 LƯỢT người của 5 người. -Tại cột B, từ B1 đến B11 có 11 giá trị số ứng với 11 lượt người của cột A. Code VBA nào để lấy ra 5 người và cộng các giá trị tương ứng ở cột B đặt ra Sheet khác. Cảm ơn các bác!
 
Lấy ra 5 người thì dùng Advanced Filter, copy to sang sheet khác... Nếu dùng VBA cũng theo cách này mà...
Còn cộng tương ứng gì đó thì chưa hình dung ra dc... vì tương ứng thế nào cũng là 11 cell... Bạn nói rõ hơn hoặc gữi file đính kèm dc ko?
 
Upvote 0
Sao bạn không gửi file lên, mình nghĩ bài này đơn giản thôi!
 
Upvote 0
Chắc đại khái như kiểu Subtotal đó bác, có yêu cầu thêm nữa là phải sort, rồi Subtotal, select Total, visible cells only, Copy, nhảy qua sheet khác, paste vào.

Cái này thì bạn cứ record macro thôi.
 
Upvote 0
Vấn đề là em không muốn dùng Advanced Filter, bởi em muốn biết thuật toán để so sánh chuổi khi for các phần tử trong 1 mảng được dùng thế nào? Em có gửi file kèm theo!
 

File đính kèm

Upvote 0
Duong_VBA đã viết:
Vấn đề là em không muốn dùng Advanced Filter, bởi em muốn biết thuật toán để so sánh chuổi khi for các phần tử trong 1 mảng được dùng thế nào? Em có gửi file kèm theo!

Bạn thử xem nhé , cũng là VBA nhưng chỉ là UFD thôi.


Thân!
 

File đính kèm

Upvote 0
tigertiger đã giúp Duong_VBA rồi viết bằng Macro có cả toán sắp xếp, thuật toán dồn mạng các phần tử (họ tên) giống nhau, trong file gửi kèm có hướng dẫn chi tiết

Chúc thành công
 

File đính kèm

Upvote 0
Chỉ là thêm một tham khảo

PHP:
Option Base 1:  Option Explicit

Sub CopyTo()
 Dim lRow As Long, iJ As Long, iZ As Long
 
 Sheets("Sheet1").Select
 lRow = Range("B65432").End(xlUp).Row
 ReDim MangDL(lRow, 2):   ReDim MCopy(lRow) As Boolean
1 './ Tim & Cong Vo Bien'
 For iJ = 2 To lRow
    If MCopy(iJ) = False Then
        MangDL(iJ, 1) = Cells(iJ, 2)
        MangDL(iJ, 2) = Cells(iJ, 3)
    End If
    For iZ = iJ + 1 To lRow
        If Cells(iJ, 2) = Cells(iZ, 2) And MCopy(iZ) = False Then
                MCopy(iZ) = True
                MangDL(iJ, 2) = MangDL(iJ, 2) + Cells(iZ, 3)
        End If
 Next iZ, iJ
2 './ Chep Tu Bien Vo Sheet'
 iZ = 1
 For iJ = 2 To lRow
    If "" <> MangDL(iJ, 1) Then
        iZ = iZ + 1:                    Cells(iZ, 8) = MangDL(iJ, 1)
        Cells(iZ, 9) = MangDL(iJ, 2):   Cells(iZ, 7) = iZ - 1
    End If
 Next iJ
End Sub
'Ở phần 2 bạn có thể sửa lại để đem đến Sheets khác & chép!
'Ghi chú: Trong bảng Sheet1 mình đã bỏ cột trống đầu tiên & các hàng trên cùng không có dữ liệu!

' Thân mến!
 
Lần chỉnh sửa cuối:
Upvote 0
Những chủ đề có tiêu đề thế này mà rất nhiều mods, smods, người có kinh nghiệm cả trăm bài,... vẫn trả lời.

Những bài viết vi phạm nằm trong box do tôi quản lý (đến khi nào tôi vẫn còn quản lý) thì sẽ xóa thẳng (kể cả admin, smod, mod đã viết bài trả lời) chứ ko "khóa đề tài" như chủ đề này!

Chắc chắn thế!
 
Upvote 0
Status
Không mở trả lời sau này.
Web KT

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

Back
Top Bottom