Nhờ giúp trích xuất dữ liệu nhiều sheet sang sheet khác? (2 người xem)

  • Thread starter Thread starter suntue
  • Ngày gửi Ngày gửi
Liên hệ QC

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

suntue

Thành viên mới
Tham gia
26/5/09
Bài viết
20
Được thích
1
Nhờ các bác giúp em vấn đề này nhé:
Có 5 sheet chưa dữ liệu (họ tên, lớp, kết quả), em muốn toàn bộ những học sinh được lên lớp của 5 sheet thành 1 danh sách (theo thứ tự từ sheet 1 đến sheet 5) ở sheet lenlop, tương rự đối với học sinh ở lại lớp nằm trong 1 danh sách trong ở sheet olai.
Em kính mong các bác giúp em chiêu này nhé. Cảm ơn nhiều.
 

File đính kèm

Nhờ các bác giúp em vấn đề này nhé:
Có 5 sheet chưa dữ liệu (họ tên, lớp, kết quả), em muốn toàn bộ những học sinh được lên lớp của 5 sheet thành 1 danh sách (theo thứ tự từ sheet 1 đến sheet 5) ở sheet lenlop, tương rự đối với học sinh ở lại lớp nằm trong 1 danh sách trong ở sheet olai.
Em kính mong các bác giúp em chiêu này nhé. Cảm ơn nhiều.

Gửi file này cho bạn tham khảo. Nhấn nút LỌC ở Sheet lenlop để xem kết quả
 

File đính kèm

Cảm ơn bạn Minh Nguyệt đã giúp, nhưng mình kém về VBA lắm (Bạn đừng cười nhé, mình là dân a bờ cờ mà). Bạn có thể hoàn thiện giúp mình trường hợp phát sinh sau: Nếu chèn thêm cột vào giữa cột họ tên và cột kết quả (từ sheet 1 đến sheet 5) thì kết quả ở sheet lenlop và sheet olai vẫn không thay đổi.
 
Nếu không thích dùng VBA thì cách đơn giản nhất là bạn đưa về cùng sheet sau đó dùng chức năng AutoFilter.
 
Cảm ơn bạn Minh Nguyệt đã giúp, nhưng mình kém về VBA lắm (Bạn đừng cười nhé, mình là dân a bờ cờ mà). Bạn có thể hoàn thiện giúp mình trường hợp phát sinh sau: Nếu chèn thêm cột vào giữa cột họ tên và cột kết quả (từ sheet 1 đến sheet 5) thì kết quả ở sheet lenlop và sheet olai vẫn không thay đổi.


Thì sửa lại một chút thôi
 

File đính kèm

Thì sửa lại một chút thôi
Bạn MinhNguyệt nên cải tiến lại code, dùng AutoFilter chứ không nên dùng For
Dử liệu cở vài chục ngàn dòng mà bạn For như thế biết đến bao giờ mới xong!
Nói với tác giả:
- Bài này thậm chí bạn làm bằng tay cũng được: Cứ AutoFilter từng sheet rồi copy sang ---> Viết code cũng sẽ dựa trên cơ sở này mà làm... Nếu dử liệu gốc của bạn có khác hơn thì tốt nhất hãy đưa lên đây nhé
 
Bạn MinhNguyệt nên cải tiến lại code, dùng AutoFilter chứ không nên dùng For
Dử liệu cở vài chục ngàn dòng mà bạn For như thế biết đến bao giờ mới xong!
Nói với tác giả:
- Bài này thậm chí bạn làm bằng tay cũng được: Cứ AutoFilter từng sheet rồi copy sang ---> Viết code cũng sẽ dựa trên cơ sở này mà làm... Nếu dử liệu gốc của bạn có khác hơn thì tốt nhất hãy đưa lên đây nhé

Cải tiến theo đề nghị của ndu
Cám ơn
Thân
 

File đính kèm

Cải tiến theo đề nghị của ndu
Cám ơn
Thân
Bạn thử code này xem:
PHP:
Sub ChepDuLieu()
  Dim Sh As Worksheet, DK As String, i As Long, k As Long
  Application.ScreenUpdating = False
  Sheets("lenlop").Range("A5:D500").ClearContents
  Sheets("olai").Range("A5:D500").ClearContents
  For k = 1 To 2
    DK = IIf(k = 1, "L" & ChrW(234) & "n", ChrW(7902) & " l" & ChrW(7841) & "i")
    Set Sh = IIf(k = 1, Sheets("lenlop"), Sheets("olai"))
    For i = 1 To Sheets.Count
      If Sheets(i).Name <> "lenlop" And Sheets(i).Name <> "olai" Then
        With Sheets(i).Range("A4").CurrentRegion
          .AutoFilter 5, DK & "*"
          Union(.Offset(1, 0).Resize(, 3), .Offset(1, 4).Resize(, 1)).SpecialCells(12).Copy
          Sh.Range("A65000").End(xlUp).Offset(1).PasteSpecial 3
          .AutoFilter
        End With
      End If
    Next i
    With Sh.Range("A4").CurrentRegion.Resize(, 1)
      If .Rows.Count > 1 Then
       .SpecialCells(2, 1).Value = Evaluate("ROW(R:R)")
      End If
    End With
  Next k
  Application.ScreenUpdating = True
End Sub
- Không cần bất cứ cell phụ nào
- Dùng Union thì khỏi cần mất công lọc rồi lại xóa bớt (Delete Shift:=xlToLeft)
- Phần kẻ khung nên dùng Conditional thì hay hơn
- Phần đánh số thứ tự chỉ cần 1 code duy nhất Evaluate("ROW(R:R)") là ăn tiền
 

File đính kèm

Lần chỉnh sửa cuối:
Em có nhờ hướng dẫn em làm công thức cac sheet lịch báo giảng lớp 5 như file mẫu đính kèm khi nhập thời khóa biểu và muốn in báo giảng tuần nào thì tên bài tuần ấy hiện ra để in.. Rất mong thầy(cô), anh chị trên diễn đàn hướng dẫn chi tiết cho người dốt và thích học hỏi như em. Em chân thành biết ơn!
 

File đính kèm

Web KT

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

Back
Top Bottom