Đăng ký học Excel và VBA cùng GPE tháng 11 - TPHCM

Đăng ký học Excel và phân tích số liệu cùng GPE tháng 12 - TPHCM

Mua sách "VBA trong Excel - Cải thiện và tăng tốc" tái bản

trích lọc danh sách theo năm sinh mà không dùng autoFilter

Thảo luận trong 'Lọc và sắp xếp dữ liệu' bắt đầu bởi amathi, 6 Tháng mười hai 2010.

  1. amathi

    amathi Thành viên mới

    Mình là giáo viên tiểu học ở miền núi, đang chập chững tự học VBA. Hằng năm, việc tổng hợp phổ cập giáo dục tiểu học rất vất vả, chủ yếu là làm thủ công. Mình vừa đăng kí thành viên của giaiphapexcell và tải được bài trích lọc dữ liệu rất hay (File trichdulieu.xsl đính kèm); xin nhờ mọi người giúp dùm lọc dữ liệu từ sheet "Mẫu 3" (có nhiều trang, mỗi trang là 1 hộ gia đình) sang sheet "Dsach" mà không dùng autoFilter, khi trích lọc thì mọi đối tượng có cùng năm sinh sẽ được đưa về 1 sheet với các thông tin khác đi cùng (tương tự File trichdulieu.xsl đính kèm). Xin được hướng dẫn chi tiết, mình xin cảm ơn nhiều. Email của mình: amathinong@gmail.com. Mong được sự giúp đỡ của diễn đàn. Xin chân thành cảm ơn.
     

    Các file đính kèm:

  2. HYen17

    HYen17 Thành viên cằn cỗi.

    Để giả lập dữ liệu cho bạn, mình tốn hơn 2/3 thời gian!

    Bạn coi trong file, nhứt là [I2] ở trang danh sách;

    (Một số cột như 'E', 'F',. . . không biết lấy dữ liệu từ đâu?!)
     

    Các file đính kèm:

    • GPEgd.rar
      Kích thước:
      46.4 KB
      Đọc:
      100
  3. amathi

    amathi Thành viên mới

    :-=Hết sức cảm ơn HYen17 đã giúp mình. Sau khi kiểm tra lại quả là các dữ liệu ở 3 cột E, F và L không có cơ sở để lấy. Nhưng do mẫu quy định chung là vậy. Song mình đã thêm 3 cột X, Y, Z để quy định (sau này khi thực hiện sẽ cho anh em điền vào), từ đó lấy dữ liệu điền vào 3 cột E, F và L. Mình cũng đã mày mò thêm code để lấy dữ liệu vào cột V (sheets3 trong file đính kèm); nhưng chưa biết cách lấy dữ liệu từ 3 cột X, Y, Z sang 3 cột E, F và L. Mong bạn giúp mình. Một lần nữa hết sức cảm ơn bạn.}}}}}
     

    Các file đính kèm:

  4. HYen17

    HYen17 Thành viên cằn cỗi.

    Rất cảm kích là bạn đã mày mò & bước đầu quen với VBA, Chúc ~ thành công sắp tới!

    & sau đây là những dòng thêm vô & sửa lại 1 dòng lệnh

    PHP:
    Option Explicit

    Private Sub Worksheet_Change(ByVal Target As Range)
     If 
    Not Intersect(Target, [I2]) Is Nothing Then
       Dim Sh 
    As WorksheetRng As RangesRng As Range
       Dim MyAdd 
    As StringRws As Long
       
       Set Rng 
    = [B7].Resize(20020):              Rng.EntireRow.Hidden False
       Rng
    .ClearContents:                           Set Sh Sheets("Mau3")
       
    Set Rng Sh.Range(Sh.[c7], Sh.[C65500].End(xlUp))
       
    Set sRng Rng.Find([I2].Value, , xlFormulasxlWhole)
       If 
    Not sRng Is Nothing Then
          MyAdd 
    sRng.Address
          
    Do
             
    With [B206].End(xlUp).Offset(1)
                .
    Value sRng.Offset(, -1).Value
                
    .Offset(, 1).Resize(, 2).Value sRng.Offset(, 1).Resize(, 2).Value
                
    .Offset(, 5).Resize(, 5).Value sRng.Offset(, 3).Resize(, 5).Value
                
    .Offset(, 11).Value sRng.Offset(, 16).Value   ' Khuyét Tat'
                
    .Offset(, 12).Value sRng.Offset(, 13).Value   ' Bo Hoc'
                'Dy Chuyen:'
                
    .Offset(, 13).Resize(, 2).Value sRng.Offset(, 17).Resize(, 2).Value
    1           
    .Offset(, 15).Value sRng.Offset(, 19).Value  '<=| Só Ho'
                
    .Offset(, 3).Resize(, 2).Value sRng.Offset(, 20).Resize(, 2).Value
    3           
    .Offset(, 10).Resize(, 2).Value sRng.Offset(, 22).Resize(, 2).Value '<=|'
             
    End With
             Set sRng 
    Rng.FindNext(sRng)
          
    Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
       End 
    If
       
    Rws = [B200].End(xlUp).Row 5
       Range
    (Cells(Rws2), Cells(1992)).EntireRow.Hidden True
     End 
    If
    End Sub
     
  5. amathi

    amathi Thành viên mới

    Cần tổng hợp bằng VB.

    Cảm ơn HYen17. Nhưng nếu như trên thì cột khuyết tật không lấy được dữ liệu (theo sheet3 kèm theo); mình đã viết thêm code như ở sheet "danh sách" và thấy kết quả khá tốt. Mong bạn kiểm tra giúp. Mình dự kiến tổng hợp bằng các hàm trong excel (ví dụ ở sheet3) nhưng sợ dùng nhiều hàm, File nặng, khó chạy. Liệu có thể dùng VB để tổng hợp được không? Nếu được bạn viết giúp code để mình nghiên cứu nha. Chân thành cảm ơn.
     

    Các file đính kèm:

    Lần chỉnh sửa cuối: 13 Tháng mười hai 2010

Chia sẻ trang này