Nhờ anh chị viết Code thay thế code Xlookup
1. File copy sang máy khác hàm Xlookup không chạy được
2. Hàm load hơi nặng
Do vậy nhờ anh chị viết giúp Code tự đông lấy dữ liệu từ 02 sheet vào 1 Sheet
Vậy nhờ anh chị hỗ trợ viết giúp Code để thay Code Xlookup
Mình vòng vo 1 chút, bạn kiểm trong file, sau khi thấy dữ liệu OK ta tiếp tục xíu nữa!
Dạ em cám ơn anh nhiều thực ra Code Arr em không hiểu nên không biết gán kết quả.
Copy cái ni & chép đè lên macro cũ & kiểm lại lần chót, nha!
Sub TongHopDuLieu()
Dim Rws As Long, J As Long, W As Long, Tmr As Double, jJ As Long
Dim Arr()
Sheets("DuLieu").Select
Rws = .CurrentRegion.Rows.Count: Tmr = Timer()
Arr() = .Resize(Rws, 4).Value: ReDim aKQ(1 To Rws, 1 To 7)
For J = 1 To UBound(Arr())
W = W + 1: aKQ(W, 1) = W
aKQ(W, 2) = Arr(J, 2): aKQ(W, 4) = Arr(J, 4)
aKQ(W, 7) = Arr(J, 1)
Next J
Sheets("TB_GSHT").Select: W = 0
Rws = .CurrentRegion.Rows.Count
Arr() = .Resize(Rws, 6).Value
ReDim aRes(1 To UBound(Arr()), 1 To 3)
For J = 1 To UBound(aKQ()) 'Bien Kiêm Soát (2) '
W = W + 1
For jJ = 1 To UBound(Arr())
If aKQ(J, 2) = Arr(jJ, 1) Then
aKQ(J, 3) = Arr(jJ, 3): aKQ(J, 5) = Arr(jJ, 5)
aKQ(J, 6) = Arr(jJ, 6)
Exit For
End If
Next jJ
Next J
With Sheets("Data")
..Resize(2 * W, 7).Value = ""
..Resize(W, 7).Value = aKQ()
..End(xlUp).Offset(1).Value = Timer() – Tmr
.Select
End With
End Sub
Em chân thành cám ơn anh nhiều Code chạy rất nhanh và chính xác
Mục 2 này cũng có thể do thiết kế trang tính của bạn chưa tối ưu; Mình xin vài ví dụ sau:
(1) Tại trang 'DuLieu' có 1 cột/trường hoàn toàn chỉ 1 thông tin duy nhất (cột C); Theo mình cột này có cách bớt đi
(1.1) Cũng ở trang này bạn có trường 'Phù Hiệu' chứa tên các loại phương tiện;
Nếu là mình thì mình sẽ đưa vô danh mục gồm mã PH như ví dụ trong bảng dưới đây:
Mã
Phù hiệu
HD_
Xe Hợp đồng
339
Tax
Xe Taxi
390
Tai
Xe Tải
1752
DK_
Xe Đầu kéo
450
Con
Xe Container
100
CD_
Xe chạy tuyến cố định
246
Byt
Xe Buýt
25
XTC
Xe Trung chuyển
1
XDL
Xe Du lịch
53
Làm vậy sẽ gọn gàng lại CSDL của bạn (bằng cách xài mã của danh mục thay vì tên danh mục)
Tương tự như vậy với trường 'Hiệu lực' ta nên xài 'Yes/No'
(2.) Bạn xài tên quá dài; Người ta có thể viết tắc các cụm từ thông dụng như CTi (thay cho 'Công ty'; TNHH thay cho 'Trách nhiệm hữu hạn',. . . . . . .
Nếu bạn chịu khó thêm thì file sẽ nhẹ & mượt thêm hơn!
& chúc vui nha!
Dạ không anh ạ (1) 02 Sheet gồm "Dulieu" và "TB_GSHT" là xuất từ phần mềm ra, nên em để nguyên định dạng file đó anh
(2)Nhờ bác xem tiếp giúp em dùng hàm Xlookop và Vlookup đối sánh thấy dữ liệu có khác
Người viết phần mềm đã chưa chú í đến vì 1 hay vài lý do nào đó , thì bạn cứ để vậy ư?
Cái tối thiểu mà bạn có thể làm ngay là:
(1) Cụm từ "Sở Giao thông Vận tải Quảng Bình" bạn có thể thay ngày & toàn bộ bỡi 'SGT QB'
(Thử ngay đi xem file giảm được bao nhiêu K!)
(1.1) Thay thử tiếp 'Yes/No' xem giảm bao nhiêu.
(1.2) Thay thử Mã PH cho 'Phù hiệu', . . . . .
[Chắc bạn dư khả năng tạo ra macro này chứ nhỉ,. . . .?]
(2) Cần gì phải Vlookup() hay XLooKup(); Cứ phương thức FIND() cũng thấy ngay kết quả & tự trả lời rồi, rõ chán!
www.giaiphapexcel.com/diendan/threads/nh%E1%BB%9D-anh-ch%E1%BB%8B-vi%E1%BA%BFt-code-thay-th%E1%BA%BF-code-xlookup.163622/post-1091367
Khóa học Power PI – Ứng dung trong Nhân sự
TỔNG QUAN KHÓA HỌC: POWER BI CHO NGÀNH NHÂN SỰ Khóa học Power BI cho Nhân sự được thiết kế dành riêng cho các...
Xem khóa học