Copy dữ liệu theo mã sẵn có

Liên hệ QC

anywayexcel

Thành viên mới
Tham gia
15/3/12
Bài viết
9
Được thích
0
Chào các bác!

Em có một việc nhờ các bác chỉ giáo giúp với ạ

Cụ thể
Em có một sheet dữ liệu tổng hợp (TONGHOP)
Có một sheet mã (NAME) chứa các mã , mã này sẽ dùng để tìm kiếm trong sheet TONGHOP, sau khi tìm ra, sẽ copy data ứng với mã đó và paste vào sheet GT
Hiện tại em đã viết được code rồi, nhưng có hai vấn đề chưa giải quyết được
1_
Vấn đề

Nếu mã trong sheet NAME khi tìm kiếm trong Sheet TONGHOP mà không ra kết quả thì macro ko chạy được
Ví dụ: Mã trong sheet NAME dùng để tìm kiềm là haiki mà trong sheet TONGHOP mã haiki lại không có, khi chạy macro sẽ báo lỗi và ko thực hiện được
Mong muốn
Nếu tìm không ra kết quả thì sẽ chuyển sang mã tiếp theo ở sheet NAME để tìm kiếm tiếp
2_
Vấn đề
Hiện tại kết quả tìm kiếm chỉ đưa ra được kết quả đầu tiên thôi
Ví dụ: Mã tìm kiếm là ADV; trong sheet TONGHOP có các mã là ADV, ADVR, ADVRF thì kết quả chỉ cho ra ADV thôi
Mong muốn
Tìm được tất cả các kết quả liên quan đến ADV từ sheet TONGHOP bao gồm ADV, ADVR, ADVRF

Em có đính kèm file, mong các bác chỉ giáo giúp với ạ

Em xin chân thành cảm ơn!
 

File đính kèm

  • COPY_DU_LIEU_CAN_THIET.xlsm
    23.9 KB · Đọc: 13
Sao nhiều người khoái dùng ngôn từ "cải lương, kiếm hiệp..." quá vậy.
Biết đâu là dân chuyên đọc Chinh Phụ Ngâm Khúc
"Chỉ ngang ngọn giáo vào ngàn hang beo"
(Hoành chinh sóc hề chỉ hổ huyệt)

Nếu không phải thì chắc chắn là dân dốt tiếng Việt, lẫn lộn từ "chỉ dẫn" với "chỉ giáo"
 
Upvote 0
Hiện tại em đã viết được code rồi, nhưng có hai vấn đề chưa giải quyết được
1_
Vấn đề

Nếu mã trong sheet NAME khi tìm kiếm trong Sheet TONGHOP mà không ra kết quả thì macro ko chạy được
Ví dụ: Mã trong sheet NAME dùng để tìm kiềm là haiki mà trong sheet TONGHOP mã haiki lại không có, khi chạy macro sẽ báo lỗi và ko thực hiện được
Mong muốn
Nếu tìm không ra kết quả thì sẽ chuyển sang mã tiếp theo ở sheet NAME để tìm kiếm tiếp
2_
Vấn đề
Hiện tại kết quả tìm kiếm chỉ đưa ra được kết quả đầu tiên thôi
Ví dụ: Mã tìm kiếm là ADV; trong sheet TONGHOP có các mã là ADV, ADVR, ADVRF thì kết quả chỉ cho ra ADV thôi
Mong muốn
Tìm được tất cả các kết quả liên quan đến ADV từ sheet TONGHOP bao gồm ADV, ADVR, ADVRF

(1) Phương thức FIND() của bạn chưa được chuẩn, tuy có vẻ 'hàn lâm' trong cách viết
Để đạt được mong muốn, bạn nên theo chuẩn vầy:
Mã:
' . . . .   '
Dim Rng As Range, sRng As Range
Dim MyAdd As String
Set Rng=Sheets("TongHop".Rows("2:2")
Set sRng=Rng.Find("GPE.COM", , xlFormulas, xlWhole
If Not Srng Is Nothing Then
     MyAdd = sRng.Address
     Do
  '. . . . .'

     Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
Else
     MsgBox "Nothing"
End If

(2) Các mã gì đó của bạn đang có độ dài khác nhau; Để đạt được mong muốn (2) của bạn cũng như vận hành CSDL sau này, nhất thiết các mã này phải có độ dài như nhau & =7
Độ dài
ADV
3​
RO2V
4​
MTCU
4​
OSTB
4​
HRV
3​
RPM
3​
RATIO
5​
AATTEMP
7
ADVFF
5​
KMP
3​
vKNRPM
6​
MONF
4​
vTITC
5​
MIAN
4​
MIAN
4​
bằng cách thêm cho đủ với từng mã đạt độ dài 7 bỡi "_"
Chuyện này rất quan trọng nếu bạn còn iêu E#xcel & cái tài lanh của Excel là kí tự đại diện
 
Lần chỉnh sửa cuối:
Upvote 0
Sao nhiều người khoái dùng ngôn từ "cải lương, kiếm hiệp..." quá vậy.
Cảm ơn bác nhiều ạ
Thực hiện chỉ thị cách ly, nhà em ở nhà cày phim Tam quốc nên chắc bị nhiễm :)
Bài đã được tự động gộp:

(1) Phương thức FIND() của bạn chưa được chuẩn, tuy có vẻ 'hàn lâm' trong cách viết
Để đạt được mong muốn, bạn nên theo chuẩn vầy:
Mã:
' . . . .   '
Dim Rng As Range, sRng As Range
Dim MyAdd As String
Set Rng=Sheets("TongHop".Rows("2:2")
Set sRng=Rng.Find("GPE.COM", , xlFormulas, xlWhole
If Not Srng Is Nothing Then
     MyAdd = sRng.Address
     Do
  '. . . . .'

     Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
Else
     MsgBox "Nothing"
End If

(2) Các mã gì đó của bạn đang có độ dài khác nhau; Để đạt được mong muốn (2) của bạn cũng như vận hành CSDL sau này, nhất thiết các mã này phải có độ dài như nhau & =7
Độ dài
ADV
3​
RO2V
4​
MTCU
4​
OSTB
4​
HRV
3​
RPM
3​
RATIO
5​
AATTEMP
7
ADVFF
5​
KMP
3​
vKNRPM
6​
MONF
4​
vTITC
5​
MIAN
4​
MIAN
4​
bằng cách thêm cho đủ với từng mã đạt độ dài 7 bỡi "_"
Chuyện này rất quan trọng nếu bạn còn iêu E#xcel & cái tài lanh của Excel là kí tự đại diện
Cảm ơn bác
Em mới tập tành viết nên code chưa tốt, em sẽ cố gắng học hỏi thêm ạ
 
Upvote 0
Sao nhiều người khoái dùng ngôn từ "cải lương, kiếm hiệp..." quá vậy.
Bác ơi,
Hiện tại code bác viết giúp em chỉ có tác dụng khi số ký tự của mã nhỏ hơn hoặc bằng 7.
Và nếu mã có chứa ký tự tiếng Nhật thì code trên cũng ko chạy được.
Có cách nào khác không ạ?
Cám ơn bác!
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn thử copy lại mã xem có trùng không? (không cùng định dạng mã).
Còn mình có thấy bác ba tê có giới hạn ký tự đâu nhỉ (chẳng lẻ đoạn
Mã:
Txt = tArr(N, 1) & "*"
nó hạn chế ký tự phía sau)
Thành thật xin lỗi các bác!
Em đã thử lại và kiểm chứng được mã code bác ba tê viết ok rồi ạ.
 
Upvote 0
. . . .. . .
Và nếu mã có chứa ký tự tiếng Nhật thì code trên cũng ko chạy được.
Có cách khác không ạ?
Sao lại bỏ tiếng Nhật vô mã được kia chứ? Lúc máy nào đó không có tiếng Nhật thì mần răng?
Ngay tiếng Việt cũng không nên chứa Ă, Ô, Ơ, Đ,.. . . kia mà.
 
Upvote 0
Web KT

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

Back
Top Bottom