Code VBA tự động copy dữ liệu sheet sang sheet khác kèm điều kiện (1 người xem)

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

maket256

Thành viên mới
Tham gia
7/6/11
Bài viết
9
Được thích
0
File excel quản lý học sinh của mình có 3 sheet: tổng hợp, lớp 4, lớp 5(gồm 3 cột Mã HS, Tên, Lớp như file đính kèm)
+ Sheet tổng hợp là danh sách tất cả học sinh lớp 4 và lớp 5
+ sheet lớp 4: ds học sinh lớp 4
+ Sheet lớp 5: ds học sinh lớp 5
Giờ mình muốn khi thêm, sửa sheet tổng hợp một học sinh thì các sheet lớp 4, lớp 5 sẽ tự động thêm, sửa theo điều kiện nếu lớp 4 vào sheet lớp 4, nếu lớp 5 vào sheet lớp 5.
Mong các bạn giúp đỡ mình.
Thanks
 

File đính kèm

File excel quản lý học sinh của mình có 3 sheet: tổng hợp, lớp 4, lớp 5(gồm 3 cột Mã HS, Tên, Lớp như file đính kèm)
+ Sheet tổng hợp là danh sách tất cả học sinh lớp 4 và lớp 5
+ sheet lớp 4: ds học sinh lớp 4
+ Sheet lớp 5: ds học sinh lớp 5
Giờ mình muốn khi thêm, sửa sheet tổng hợp một học sinh thì các sheet lớp 4, lớp 5 sẽ tự động thêm, sửa theo điều kiện nếu lớp 4 vào sheet lớp 4, nếu lớp 5 vào sheet lớp 5.
Mong các bạn giúp đỡ mình.
Thanks
Trong cái ô vàng vàng nhập số nào thì sẽ hiện ra lớp đó
 

File đính kèm

Upvote 0
Cho mình hỏi về code chút:
[IV1] = [C1]: [IV2] = Right(ActiveSheet.Name, 1)
Sheet1.[A1:C1000].AdvancedFilter 2, [IV1:IV2], [A1:C1]
Hai dòng này [A1: C1000] và [IV1:IV2], [A1:C1] được hiểu là thế nào ah ???
Nếu mình thêm một cột D-Giới tính mình sửa dòng Sheet1.[A1:D1000].AdvancedFilter 2, [IV1:IV2], [A1:D1] thấy báo lỗi.
Hay mình sửa ô B1: Tên thành Họ Tên cũng báo lỗi ah.
Cảm ơn bạn
 
Upvote 0
Cho mình hỏi về code chút:
[IV1] = [C1]: [IV2] = Right(ActiveSheet.Name, 1)
Sheet1.[A1:C1000].AdvancedFilter 2, [IV1:IV2], [A1:C1]
Hai dòng này [A1: C1000] và [IV1:IV2], [A1:C1] được hiểu là thế nào ah ???
Nếu mình thêm một cột D-Giới tính mình sửa dòng Sheet1.[A1:D1000].AdvancedFilter 2, [IV1:IV2], [A1:D1] thấy báo lỗi.
Hay mình sửa ô B1: Tên thành Họ Tên cũng báo lỗi ah.
Cảm ơn bạn
Mình chỉ biết viết code theo file mẫu, sửa lại định dạng là luôn có lỗi. Mình chỉ code theo cảm giác nên làm gì biết cách giải thích chứ.
Thay code này vào cho file đính kèm trước
PHP:
Sub loc()
Dim dk, data(), i, j, k, SoCot
SoCot = 3
If ActiveSheet.CodeName = "Sheet1" Then Exit Sub
dk = Right(ActiveSheet.Name, 1)
data = Sheet1.[A1].CurrentRegion.Value
Do
   i = i + 1
   If CStr(data(i, 3)) = dk Then
      k = k + 1
      For j = 1 To SoCot
         data(k, j) = data(i, j)
      Next
   End If
Loop Until data(i, 1) = "" Or i = UBound(data)
[A2].Resize(k, SoCot) = data
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom