Dò tìm, đối chiếu, trả kết quả khi dò tìm khớp

Liên hệ QC

kieuhuy_bmt

Thành viên thường trực
Tham gia
18/10/07
Bài viết
288
Được thích
36
Nghề nghiệp
Đang thất nghiệp
Xin Chào mọi người!
Tôi có 2 sheet. hai Sheet có chung cột mã lọc. yêu cầu tại sheet thứ 2 dò tìm nếu cùng mã lọc thì dán kết quả chỉ định từ sheet 1 qua.
Mọi người sử dụng bằng VBA giúp vì Dữ liệu nhiều, tôi dùng bằng hàm nên máy không thực hiện hiệu quả. (có hướng dẫn trong File).
 

File đính kèm

  • Chuyen tu Ham sang dung VBA.rar
    626.7 KB · Đọc: 58
Bạn thử dùng code sau
Mã:
Private Sub CommandButton1_Click()
Dim Tmp, Tmp1, i, j, n
Dim Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
Sheet10.Range("ma_do").Offset(, 1).Resize(, 8).ClearContents
Tmp = Sheet17.Range("cap_moi")
Tmp1 = Sheet10.Range("ma_do").Resize(, 9)
For i = 1 To UBound(Tmp, 1)
If Not Dic.Exists(Tmp(i, 1)) Then Dic.Add Tmp(i, 1), i
Next
For i = 1 To UBound(Tmp1, 1)
If Dic.Exists(Tmp1(i, 1)) Then
j = Dic.Item(Tmp1(i, 1))
Tmp1(i, 2) = "So dong" & j
For n = 3 To 9
Tmp1(i, n) = Tmp(j, n + IIf(n < 6, -1, 1))
Next
End If
Next
Sheet10.Range("ma_do").Resize(, 9) = Tmp1
Set Dic = Nothing
End Sub
 

File đính kèm

  • Chuyen tu Ham sang dung VBA.rar
    405.1 KB · Đọc: 71
Upvote 0
Bạn thử dùng code sau
Mã:
Private Sub CommandButton1_Click()
Dim Tmp, Tmp1, i, j, n
Dim Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
Sheet10.Range("ma_do").Offset(, 1).Resize(, 8).ClearContents
Tmp = Sheet17.Range("cap_moi")
Tmp1 = Sheet10.Range("ma_do").Resize(, 9)
For i = 1 To UBound(Tmp, 1)
If Not Dic.Exists(Tmp(i, 1)) Then Dic.Add Tmp(i, 1), i
Next
For i = 1 To UBound(Tmp1, 1)
If Dic.Exists(Tmp1(i, 1)) Then
j = Dic.Item(Tmp1(i, 1))
Tmp1(i, 2) = "So dong" & j
For n = 3 To 9
Tmp1(i, n) = Tmp(j, n + IIf(n < 6, -1, 1))
Next
End If
Next
Sheet10.Range("ma_do").Resize(, 9) = Tmp1
Set Dic = Nothing
End Sub
Quả là đúng ý đệ. cảm ơn Huynh nhé,
Hình như các "name" không được xóa!
Từ K3 đến R3 (Sheet đích), ta nhập thay đổi số liệu ở đây. Vấn đề sửa code làm sao để chúng tự động trả về kết quả tương ứng với số liệu bên (sheet nguồn) khi ta thay đổi các con số tại K3 đến R3. Bác chỉ giúp với!
 
Lần chỉnh sửa cuối:
Upvote 0
Bác sealand bận rồi! mọi người ai biết, giúp một tay.
 
Upvote 0
Tôi hiểu ý bạn, nhưng nếu làm như vậy phải khống chế thật chặt chẽ việc nhập yêu cầu vào vùng K3:R3 của sheet đích vì nếu nhập sai hay ngoài vùng Tmp thì phát sinh lỗi ngay.
 
Upvote 0
Tôi hiểu ý bạn, nhưng nếu làm như vậy phải khống chế thật chặt chẽ việc nhập yêu cầu vào vùng K3:R3 của sheet đích vì nếu nhập sai hay ngoài vùng Tmp thì phát sinh lỗi ngay.
tại sheet nguồn và đích khống chế mã nhập từ 1 đến 15 có được kg. vùng K3: R3 ta tạo thanh xổ xuống theo khống chế đã mặc định có được kg Bác!
 
Upvote 0
Có 1 số vấn đề như sau:
-Tại Sh đích Cot J không thay đổi vì nó là mã đối chiếu. Cột K là cột dùng công thức nên không thể tìm trên Sh nguồn được. Như vậy Sh đích còn 7 cột để tìm và chép.

-Vùng nguồn chỉ có 13 cột để tìm chép:F-S.

-Mã cột Không nên dùng toàn số mà kết hợp với kys tự để tránh sai lẹch
 
Upvote 0
Có 1 số vấn đề như sau:
-Tại Sh đích Cot J không thay đổi vì nó là mã đối chiếu. Cột K là cột dùng công thức nên không thể tìm trên Sh nguồn được. Như vậy Sh đích còn 7 cột để tìm và chép.

-Vùng nguồn chỉ có 13 cột để tìm chép:F-S.

-Mã cột Không nên dùng toàn số mà kết hợp với kys tự để tránh sai lẹch
Em kg rành. Bác giúp em đi.
 
Upvote 0
Web KT
Back
Top Bottom