So sánh dữ liệu giữa 2 sheet và nếu trùng nhau thì copy dữ liệu sheet1 sang sheet2! (5 người xem)

Liên hệ QC

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

thuhang_uniden

Thành viên mới
Tham gia
1/12/10
Bài viết
8
Được thích
0
Em chào các bác!
Em có file đính kèm, em mong các bác chỉ giáo giúp em:
sheet 1 và sheet 2 có 3 cột giống nhau,
em muốn so sánh cột 1 của 2 sheet với nhau: - nếu giống nhau thì copy dữ liệu cột 2 và 3 của sheet1 sang cột 2 và 3 của sheet 2
- nếu khác nhau thì copy cả cột 1, 2 và 3 của sheet1 chèn vào dòng cuối cùng của sheet 2
Các bác giúp đỡ em nha.
Em chân thành cảm ơn, em đang rất cần, ngày mai em phải gửi báo cáo rồi các bác ạ.
 

File đính kèm

Bạn xem trong file, không rõ đúng í chưa nữa?

--=0 --=0 --=0 --=0 --=0 --=0
 

File đính kèm

Cám ơn HYen17 rất nhiều,
bạn có thể giải thích giúp mình đoạn code sau được không:
Dim Sh As Worksheet, Rng As Range, sRng As Range, Cls As Range
Dim MyAdd As String

Sheet1.Select
Set Sh = ThisWorkbook.Worksheets("Sheet2")
Set Rng = Sh.Range(Sh.[A1], Sh.[A65500].End(xlUp))
For Each Cls In Range([A2], [A65500].End(xlUp))
Set sRng = Rng.Find(Cls.Value, , xlFormulas, xlWhole)
If sRng Is Nothing Then
With Sh.[A65500].End(xlUp).Offset(1)
.Resize(, 3).Value = Cls.Resize(, 3).Value
.Interior.ColorIndex = 35
End With
Else
MyAdd = sRng.Address
Do
With sRng.Offset(, 1)
If .Value = "" Then .Resize(, 2).Value = Cls.Offset(, 1).Resize(, 2).Value
End With
Set sRng = Rng.FindNext(sRng)
Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
End If
Next Cls

Mình không hiểu tham số của offset: 1 là gì, Resize(,2) là gì:
vì mình áp dụng để làm báo cáo của mình là các cột và vùng khác nhau, vì vậy bạn giải thích giúp mình với.
Xin chân thành cám ơn.
 
(1)
PHP:
 Dim Sh As Worksheet, Rng As Range, sRng As Range, Cls As Range
   Dim MyAdd As String
 'D1 & D2: Khai Báo Các Biến Cần Dùng'
   Sheet1.Select                      'Kích Họa Trang tính Sheet1'
' Lấy Trang Tính Sheet2 Gán Vô Biến Sh Đã Khai Báo:'
   Set Sh = ThisWorkbook.Worksheets("Sheet2")
'Lấy Vùng Cột "A" Của Sh Gán Vô Biến Rng:'
   Set Rng = Sh.Range(Sh.[A1], Sh.[A65500].End(xlUp))
'Tao Vòng Lặp Duyệt Qua Hết Các Ô Thuộc Vùng A2 Đến Dòng Cuối Của Cột Này Chứa DL (Dữ Liệu):'
   For Each Cls In Range([A2], [A65500].End(xlUp))
'Thực Hiện Fương Thức Tìm Ô Nào Trong Biến Vùng Rng Có DL Gióng Với Ô Mà Vòng Lặp Đang Trãi Qua:'
         Set sRng = Rng.Find(Cls.Value, , xlFormulas, xlWhole)
' Nếu Tìm Không Thấy Thì Thực Thi Các Lệnh Cho Đến Lệnh 13:'
         If sRng Is Nothing Then
'Với Ô Trống Đầu Tiện Sau Ô Chứa DL Thuộc Cột "A":'
9         With Sh.[A65500].End(xlUp).Offset(1)
'3 Ô liền Kề Về Fía Fải Được Gán Trị của 3 Ô Kể Từ Ô Đang Khảo Sát Trở Về Fía Fải:'
               .Resize(, 3).Value = Cls.Resize(, 3).Value
'Tô Màu Nền Xanh Lơ Ô Đầu Tiên Trong 3 Ô Vửa Gán Trị:'
               .Interior.ColorIndex = 35
          End With
'Điều Kiện Nếu Tìm Thấy:'
13    Else
'Gán Địa Chỉ Ô Tìm Thấy Vô Biến Kiểu Chuỗi Đã Khai Báo:'
          MyAdd = sRng.Address
' Tạo Vòng Lặp Khảo Sát Các Ô Cùng Trị Với Ô Tìm Thấy Trong Biến Rng:'
         Do
'Với Ô Cạnh Fải So Với Ô Tìm Thấy:'
16             With sRng.Offset(, 1)
'ĐKiện Là Ô Này Chưa Chứa DL:' Thì Ta Chép DL Từ 2 Ô Fải Liền Kề Với Cls Đang Khảo Sát Đến Chúng:'
                 If .Value = "" Then .Resize(, 2).Value = Cls.Offset(, 1).Resize(, 2).Value
             End With
'Lệnh Tìm Tiếp Đến Hết:'
            Set sRng = Rng.FindNext(sRng)
'Lệnh Đ/K Để Thoát Vòng Lặp Do. . Loop:'
         Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
     End If
 Next Cls


(2) Mình không hiểu tham số của offset: 1 là gì, Resize(,2) là gì:
vì mình áp dụng để làm báo cáo của mình là các cột và vùng khác nhau, vì vậy bạn giải thích giúp mình với.
Xin chân thành cám ơn.

Bạn hãy tìm các bài giới thiệu về các fương thức này có trên diễn đàn theo từ khóa tương thích.
 
Làm thế nào để chạy được code này các bác ?
 
Em đang tìm hiểu về phương thức Find, qua một số ví dụ em chưa phân biệt rõ lắm trường hợp này dùng xlFormulas, trường hợp nào dùng XlValues?

PHP:
 Set sRng = Rng.Find(Cls.Value, , xlFormulas, xlWhole)
 
Các Bác giúp em với.
Sheet SALES là dữ liệu phát hành ORDER của KINH DOANH
Sheet SHIPPING là dữ liệu nhận ORDER của XNK

Vì lỗi nhập máy hoặc quên cập nhật nên mình hay bị lỗi xuất hàng không đúng yêu cầu.

Giúp mình khi bấm nút check ở Sheet CHECK thì tự động list ra các ORDER có nội dung khác nhau như ví dụ
 

File đính kèm

Web KT

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

Back
Top Bottom