COPY DỮ LIỆU - TÌM VÀ DÁN DỮ LIỆU TỪ SHEET NÀY SANG SHEET KIA!

Liên hệ QC

hcl_pt

Thành viên thường trực
Tham gia
21/10/10
Bài viết
208
Được thích
11
Kính mong GPE giúp đỡ cách sao chép và tìm, dán dữ liệu từ sheet (DATE) sang sheet (MauNhapLieu):
Ví dụ: Cột D: NĂM SINH 2008 at sheet (DATE): in the list with Em Nguyễn Thị Lan Anh: need copy information in column J (Khối học); thông tin ở cột K (Lớp học); thông tin ở cột L (Mã Trường) của em Nguyễn Thị Lan Anh => dán vào trang tính 3 cột tương ứng (MauNhapLieu): column R (Khối học); cột S (Lớp học); cột S (Mã Trường) của em Nguyễn Thị Lan Anh sinh năm 2008.
Tương tự như vậy sao chép thông tin của các em khác trong sheet (DATE) tìm và dán thông tin của em đó vào sheet (MauNhapLieu).
- Trường hợp trang (DATE) có danh sách em A mà ở trang tính (MauNhapLieu) không có danh sách em A thì em A ở trang tính (DATE): ĐƯỢC BỎ LÒNG ĐÓ.
- Trường hợp trang (DATE) KHÔNG có danh sách em A mà ở trang tính (MauNhapLieu) Lại có danh sách em A thì em A ở trang tính (MauNhapLieu): ĐƯỢC BỎ LÒNG ĐÓ.
- Rất mong GPE giúp đỡ! Xin trân trọng cảm ơn!
 

File đính kèm

  • COPY_PASTE.xls
    469 KB · Đọc: 23
Bài này vi phạm các nguyên tắc khi đăng tải lên trang giaiphapexcel.com
 
Mong GPE giúp đỡ trường hợp này ạ: tìm, sao chép và dán dữ liệu từ sheet (DATA) sang sheet (MauNhapLieu) thỏa mãn các điều kiện sau:
* Trang tính (DATA) là đầu ban đầu dữ liệu trang tính. Sheet (MauNhapLieu) is sheet to enter the information get from sheet (DATA) to.
- Sheet (MauNhapLieu) có cột A chứa HỌP LỆNH VÀ NĂM HỌC CỦA HỌC SINH cần nhập thông tin về KHỐI HỌC; LỚP HỌC; MÃ for this school: information about KHÓA HỌC; LỚP HỌC; Các chương trình học sẽ được lấy từ sheet (DATA) copy paste sang.
+ Trường hợp ở sheet (MauNhapLieu) ở cột A có this tên học sinh mà bên trong sheet (DỮ LIỆU) không có tên học sinh thì tô đỏ dòng đó có tên học sinh đó
+ Trường hợp ở trang tính (DATA) ở cột A có này tên học sinh mà bên trong trang tính (MauNhapLieu) không có tên học sinh đó thì tô đỏ dòng chữ đó.
Ví dụ: theo tệp tin đính kèm:
- Trong sheet (MauNhapLieu) to enter information for the learning Sinh: Đinh Huy Hoàng 2011 => ta sẽ copy thông tin về KHỐI HỌC; LỚP HỌC; Học viện Đinh Huy Hoàng 2011 in sheet (DATA) rồi paste (Values) vào sheet (MauNhapLieu).
- Trong sheet (MauNhapLieu) có học sinh Nguyễn Thị Dự 2011 nhưng trong sheet (DATA) không có học sinh Nguyễn Thị Dự 2011
=> ta tô đỏ dòng có học sinh Nguyễn Thị Dự 2011
- Trong trang tính (DATA) có học sinh Nguyễn Thị Minh 2011 nhưng trong trang tính (MauNhapLieu) không có thì ta tô màu đỏ cho học sinh Nguyễn Thị Minh 2011.
- Tương tự như vậy cho những người khác học.
- Rất mong GPE giúp đỡ! Xin trân trọng cảm ơn!
 

File đính kèm

  • COPY_PASTE.xls
    112.5 KB · Đọc: 10
Mong GPE giúp đỡ trường hợp này ạ: tìm, sao chép và dán dữ liệu từ sheet (DATA) sang sheet (MauNhapLieu) thỏa mãn các điều kiện sau:
* Trang tính (DATA) là đầu ban đầu dữ liệu trang tính. Sheet (MauNhapLieu) is sheet to enter the information get from sheet (DATA) to.
- Sheet (MauNhapLieu) có cột A chứa HỌP LỆNH VÀ NĂM HỌC CỦA HỌC SINH cần nhập thông tin về KHỐI HỌC; LỚP HỌC; MÃ for this school: information about KHÓA HỌC; LỚP HỌC; Các chương trình học sẽ được lấy từ sheet (DATA) copy paste sang.
+ Trường hợp ở sheet (MauNhapLieu) ở cột A có this tên học sinh mà bên trong sheet (DỮ LIỆU) không có tên học sinh thì tô đỏ dòng đó có tên học sinh đó
+ Trường hợp ở trang tính (DATA) ở cột A có này tên học sinh mà bên trong trang tính (MauNhapLieu) không có tên học sinh đó thì tô đỏ dòng chữ đó.
Ví dụ: theo tệp tin đính kèm:
- Trong sheet (MauNhapLieu) to enter information for the learning Sinh: Đinh Huy Hoàng 2011 => ta sẽ copy thông tin về KHỐI HỌC; LỚP HỌC; Học viện Đinh Huy Hoàng 2011 in sheet (DATA) rồi paste (Values) vào sheet (MauNhapLieu).
- Trong sheet (MauNhapLieu) có học sinh Nguyễn Thị Dự 2011 nhưng trong sheet (DATA) không có học sinh Nguyễn Thị Dự 2011
=> ta tô đỏ dòng có học sinh Nguyễn Thị Dự 2011
- Trong trang tính (DATA) có học sinh Nguyễn Thị Minh 2011 nhưng trong trang tính (MauNhapLieu) không có thì ta tô màu đỏ cho học sinh Nguyễn Thị Minh 2011.
- Tương tự như vậy cho những người khác học.
- Rất mong GPE giúp đỡ! Xin trân trọng cảm ơn!
Nguyên nhìn cái bạn đưa ra đã thấy nhiều rồi.Chưa mở file ra.
 
Mong GPE giúp đỡ trường hợp này ạ: tìm, sao chép và dán dữ liệu từ sheet (DATA) sang sheet (MauNhapLieu) thỏa mãn các điều kiện sau:
* Trang tính (DATA) là đầu ban đầu dữ liệu trang tính. Sheet (MauNhapLieu) is sheet to enter the information get from sheet (DATA) to.
- Sheet (MauNhapLieu) có cột A chứa HỌP LỆNH VÀ NĂM HỌC CỦA HỌC SINH cần nhập thông tin về KHỐI HỌC; LỚP HỌC; MÃ for this school: information about KHÓA HỌC; LỚP HỌC; Các chương trình học sẽ được lấy từ sheet (DATA) copy paste sang.
+ Trường hợp ở sheet (MauNhapLieu) ở cột A có this tên học sinh mà bên trong sheet (DỮ LIỆU) không có tên học sinh thì tô đỏ dòng đó có tên học sinh đó
+ Trường hợp ở trang tính (DATA) ở cột A có này tên học sinh mà bên trong trang tính (MauNhapLieu) không có tên học sinh đó thì tô đỏ dòng chữ đó.
Ví dụ: theo tệp tin đính kèm:
- Trong sheet (MauNhapLieu) to enter information for the learning Sinh: Đinh Huy Hoàng 2011 => ta sẽ copy thông tin về KHỐI HỌC; LỚP HỌC; Học viện Đinh Huy Hoàng 2011 in sheet (DATA) rồi paste (Values) vào sheet (MauNhapLieu).
- Trong sheet (MauNhapLieu) có học sinh Nguyễn Thị Dự 2011 nhưng trong sheet (DATA) không có học sinh Nguyễn Thị Dự 2011
=> ta tô đỏ dòng có học sinh Nguyễn Thị Dự 2011
- Trong trang tính (DATA) có học sinh Nguyễn Thị Minh 2011 nhưng trong trang tính (MauNhapLieu) không có thì ta tô màu đỏ cho học sinh Nguyễn Thị Minh 2011.
- Tương tự như vậy cho những người khác học.
- Rất mong GPE giúp đỡ! Xin trân trọng cảm ơn!
Bạn không tính trường hợp trùng tên à.Cái này cần phải làm cái mã số học sinh chứ.Và thêm nữa là các dữ liệu ở bên các trường cần copy sang có xóa hết không.
 
You don’t be an trùng trùng tên trường à.Cái này cần phải làm một số học sinh mã hóa chứ.
Dạ, Cảm ơn thầy! chính vì sợ trùng tên nên em mới để HỌ TÊN HỌC SINH kèm theo NĂM SINH! Nhưng trường hợp mà vẫn dính trùng tên thì không copy dữ liệu với những đối tượng trùng tên và tô màu vàng cho đối tượng trùng tên đó được không ạ? (Những đối tượng trùng tên này thì sẽ xử lý thủ công trực tiếp sau)
 
Dạ, Cảm ơn thầy! chính vì sợ trùng tên nên em mới để HỌ TÊN HỌC SINH kèm theo NĂM SINH! Nhưng trường hợp mà vẫn dính trùng tên thì không copy dữ liệu với những đối tượng trùng tên và tô màu vàng cho đối tượng trùng tên đó được không ạ? (Những đối tượng trùng tên này thì sẽ xử lý thủ công trực tiếp sau)
Bạn thử code.
Mã:
Sub abc()
    Dim i As Long, lr As Long, dic As Object, arr, kq, dk As String
    Set dic = CreateObject("scripting.dictionary")
    With Sheets("data")
        lr = .Range("C" & Rows.Count).End(xlUp).Row
        .Range("A5:V" & lr).Interior.ColorIndex = 0
        arr = .Range("A5:V" & lr).Value
        For i = 1 To UBound(arr)
            dk = arr(i, 1)
            If Not dic.exists(dk) Then
               dic.Add dk, Array(i, 1)
            Else
               .Range("A" & i + 4).Resize(, 22).Interior.ColorIndex = 6
               .Range("A" & dic.Item(dk)(0) + 4).Resize(, 22).Interior.ColorIndex = 6
            End If
       Next i
   End With
   With Sheets("maunhaplieu")
        lr = .Range("C" & Rows.Count).End(xlUp).Row
        kq = .Range("a5:V" & lr).Value
        .Range("A5:V" & lr).Interior.ColorIndex = 0
        For i = 1 To UBound(kq)
            dk = kq(i, 1)
            If dic.exists(dk) Then
               kq(i, 18) = arr(dic.Item(dk)(0), 18)
               kq(i, 19) = arr(dic.Item(dk)(0), 19)
               kq(i, 22) = arr(dic.Item(dk)(0), 22)
               dic.Item(dk) = Array(dic.Item(dk)(0), 2)
             Else
               .Range("A" & i + 4).Resize(, 22).Interior.ColorIndex = 3
             End If
       Next i
.Range("a5:V" & lr).Value=kq
   End With
   With Sheets("data")
        For i = 1 To UBound(arr)
            dk = arr(i, 1)
            If dic.Item(dk)(1) = 1 Then
               .Range("A" & i + 4).Resize(, 22).Interior.ColorIndex = 5
            End If
        Next i
   End With
   Set dic = Nothing
     
End Sub
 
Lần chỉnh sửa cuối:
Bạn thử mã.
Mã:
 Sub abc ()
    Dim i As Long, lr As Long, dic As Object, arr, kq, dk As String
    Đặt dic = CreateObject ("scripting.dictionary")
    Với Trang tính ("dữ liệu")
        lr = .Range ("C" & Rows.Count) .End (xlUp) .Row
        .Range ("A5: V" & lr) .Interior.ColorIndex = 0
        arr = .Range ("A5: V" & lr) .Value
        Đối với i = 1 Đến UBound (arr)
            dk = arr (i, 1)
            If Not dic.exists (dk) Sau đó
               dic.Add dk, Array (i, 1)
            Khác
               .Range ("A" & i + 4) .Resize (, 22) .Interior.ColorIndex = 6
               .Range ("A" & dic.Item (dk) (0) + 4) .Resize (, 22) .Interior.ColorIndex = 6
            Kết thúc nếu
       Tiếp theo tôi
   Kết thúc với
   Với Trang tính ("maunhaplieu")
        lr = .Range ("C" & Rows.Count) .End (xlUp) .Row
        kq = .Range ("a5: V" & lr) .Value
        .Range ("A5: V" & lr) .Interior.ColorIndex = 0
        Đối với i = 1 Đến UBound (kq)
            dk = kq (i, 1)
            Nếu dic.exists (dk) Thì
               kq (i, 18) = arr (dic.Item (dk) (0), 18)
               kq (i, 19) = arr (dic.Item (dk) (0), 19)
               kq (i, 22) = arr (dic.Item (dk) (0), 22)
               dic.Item (dk) = Mảng (dic.Item (dk) (0), 2)
             Khác
               .Range ("A" & i + 4) .Resize (, 22) .Interior.ColorIndex = 3
             Kết thúc nếu
       Tiếp theo tôi
   Kết thúc với
   Với Trang tính ("dữ liệu")
        Đối với i = 1 Đến UBound (arr)
            dk = arr (i, 1)
            Nếu dic.Item (dk) (1) = 1 Thì
               .Range ("A" & i + 4) .Resize (, 22) .Interior.ColorIndex = 5
            Kết thúc nếu
        Tiếp theo tôi
   Kết thúc với
   Đặt dic = Không có gì
     
Kết thúc Sub
[/MÃ SỐ]
[/QUOTE]
Cảm ơn thầy! Em đã cho chạy code thì phần tô màu cho HS có trong sheet này mà không có trong sheet kia là đúng rồi ạ. Nhưng thầy kiểm tra giúp,  em thấy không có copy dữ liệu KHỐI HỌC, LỚP HỌC, và MÃ TRƯỜNG từ sheet(DATA) dán sang sheet(MauNhapLieu)  ạ?
 
You try code.
Mã:
 Sub abc ()
    Dim i As Long, lr As Long, dic As Object, arr, kq, dk As String
    Set dic = CreateObject ("scripting.dictionary")
    With Trang tính ("data")
        lr = .Range ("C" & Rows.Count) .End (xlUp) .Row
        .Range ("A5: V" & lr) .Interior.ColorIndex = 0
        arr = .Range ("A5: V" & lr) .Value
        Đối với i = 1 to UBound (arr)
            dk = arr (i, 1)
            If Not dic.exists (dk) Sau đó
               dic.Add dk, Array (i, 1)
            Other
               .Range ("A" & i + 4) .Resize (, 22) .Interior.ColorIndex = 6
               .Range ("A" & dic.Item (dk) (0) + 4) .Resize (, 22) .Interior.ColorIndex = 6
            End if
       Tiếp theo tôi
   End with
   Với Trang tính ("maunhaplieu")
        lr = .Range ("C" & Rows.Count) .End (xlUp) .Row
        kq = .Range ("a5: V" & lr) .Value
        .Range ("A5: V" & lr) .Interior.ColorIndex = 0
        Đối với i = 1 to UBound (kq)
            dk = kq (i, 1)
            If dic.exists (dk) Thì
               kq (i, 18) = arr (dic.Item (dk) (0), 18)
               kq (i, 19) = arr (dic.Item (dk) (0), 19)
               kq (i, 22) = arr (dic.Item (dk) (0), 22)
               dic.Item (dk) = Mảng (dic.Item (dk) (0), 2)
             Other
               .Range ("A" & i + 4) .Resize (, 22) .Interior.ColorIndex = 3
             End if
       Tiếp theo tôi
   End with
   With Trang tính ("data")
        Đối với i = 1 to UBound (arr)
            dk = arr (i, 1)
            If dic.Item (dk) (1) = 1 Thì
               .Range ("A" & i + 4) .Resize (, 22) .Interior.ColorIndex = 5
            End if
        Tiếp theo tôi
   End with
   Set dic = Không có gì
    
End Sub
[/ MÃ SỐ]
[/TRÍCH DẪN]
Cảm ơn thầy! Em đã chạy mã, phần tô màu cho HS có trong trang này mà không có trong trang kia là đúng rồi ạ. Nhưng thầy kiểm tra giúp, em thấy không có sao chép dữ liệu, LỚP HỌC, và từ sheet (DỮ LIỆU) dán sang sheet (MauNhapLieu) ạ? [/ CODE]
[/QUOTE]
 
Em có đoạn mã tham khảo của thầy huuthang_bd về vấn đề copy và paste, đoạn code như sau:
Sub Worksheet_Activate () Application.ScreenUpdating = Sai Application.Calculation = xlCalculationManual Khi có lỗi Tiếp tục tiếp theo Dim Cll As Range, FindCll As Range 'Sheet3.UsedRange.ClearContents Đối với Mỗi Cll Trong Trang tính ("MauNhapLieu"). [A: A] .SpecialCells (xlCellTypeConstants, 23) Đặt FindCll = Không có gì Đặt FindCll = Sheets ("DATA"). [A: A] .Find (What: = Cll.Value, lookat: = xlWhole) Với Trang tính ("DỮ LIỆU"). Phạm vi (FindCll, Trang tính ("DỮ LIỆU"). Ô (FindCll.Row, Sheet1.Columns.Count) .End (xlToLeft)) Trang tính ("MauNhapLieu"). Phạm vi (Cll.Address) .Resize (, .Columns.Count) .Value = .Value Kết thúc với Tiếp theo Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True Kết thúc Sub [/ ICODE] Nhưng đoạn code này lại copy toàn bộ dữ liệu dòng dán sang- mong các thầy chỉ giúp có cách nào điều chỉnh lại để chỉ copy dữ liệu từ cột R (KHỐI HỌC); cột S (LỚP HỌC); cột V (MÃ TRƯỜNG) không ạ?
 

File đính kèm

  • COPY_PASTE (3).xls
    117.5 KB · Đọc: 13
Web KT

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

Back
Top Bottom