Xin viết dùng mã vba thay thế cho hàm vlookup

Liên hệ QC
Em muốn biết cách thay đổi code ở đâu luôn ấy ạ, ví dụ như file này em muốn lấy 2 cột là người phụ trách và số đt người phụ trạch. Vì em muốn biết để custom vào những file sau luôn
macro sau sẽ hiện kết quả 3 cột (thêm cột đầu) ở trang 'ChiTiet':

PHP:
Sub Auto_Open()
  Dim Wks As Worksheet, SrcRng As Range, sArray
  Dim lR As Long, I As Long, J As Long, Num As Long, Tmp
'  On Error Resume Next '
  Set Wks = Sheets("LLNV")
  lR = Wks.[B6].CurrentRegion.Rows.Count    '+  +       '
  Set SrcRng = Wks.Range("B6:R" & lR)       '*  *       '
  sArray = SrcRng.Value:                    lR = 0      ''
  ReDim aResult(1 To UBound(sArray, 1), 1 To UBound(sArray, 2))
  Set Dic = CreateObject("Scripting.Dictionary")
  For I = 1 To UBound(sArray, 1)
    If CStr(sArray(I, 1)) <> "" Then
      Tmp = sArray(I, 1)
      If Not Dic.Exists(Tmp) Then
        lR = lR + 1
        Dic.Add Tmp, lR
        For J = 1 To UBound(sArray, 2) Step 2     '17 '
            Num = Num + 1
            aResult(lR, Num) = sArray(I, J)
        Next
        Num = 0
      End If
    End If
  Next
  Sheets("Chitiet").[C6].Resize(lR, 3).Value = aResult()
End Sub
 
Bạn xóa bỏ đoạn code đó như thế nào; nếu xóa hoàn toàn như đoạn ở trên thì bạn đã xóa mất đoạn code để nó ghi lại kết quả; các dòng có ....FormulaR1C1="=.... là dòng code điền công thức.
dòng code dưới đây là dòng ghi lại kết quả lên sheet (bạn không được xóa bỏ dòng này-dòng tô đậm).
kTarget.Offset(, -1).Resize(, 15).Value = arr1

Có điều khi xóa các dòng tự điền công thức thì cứ mỗi khi bạn thêm dữ liệu lại phải sao chép công thức xuống các ô thôi.
Chúc thành công.
em có xóa bỏ được công thức. nhưng có vấn đề là khi kéo hoặc paste nhiều mã NVL ở cột Z thì nó chỉ chạy có đúng 1 dòng trên , cú phải nhấp vào rồi enter từng cái 1 mới chạy code không được như cột mã sản phẩm ở cột A. và khi thay đổi j đó ở Sh ma NVL thì nó không auto thay đổi ở Sh bang MASTER. lại phải kích vào enter mới cập nhật. làm sao để nó hoạt động auto như phần nhập mã sản phẩm ạ. Bác xem giúp em với!
 

File đính kèm

Nhờ anh chị nào giúp code dùng mãng thay thế cho dùng vba vlookup do dữ liệu lớn nên vlookup chạy giật quá. Xin cám ơn
Bài đã được tự động gộp:

Nhờ anh chị nào giúp code dùng mãng thay thế cho dùng vba vlookup do dữ liệu lớn nên vlookup chạy giật quá. Xin cám ơn
 

File đính kèm

Nhờ anh chị nào giúp code dùng mãng thay thế cho dùng vba vlookup do dữ liệu lớn nên vlookup chạy giật quá. Xin cám ơn
Bài đã được tự động gộp:
Trong khi chờ các giải pháp khác thử tham khảo code trong file sau
1/ Chạy sub DoTim để được kết quả cả bảng tính (sheet2)
2/ Dùng hàm tự tạo:
D6=Dotim1(C6;2) nhấn Enter
F6=Dotim1(C6;4)
I6=Dotim1(C6;6)
 

File đính kèm

Giờ này mà còn nói chuyện "Vlookup gặp dữ liệu lớn chạy giật quá" là quá sức lỗi thời.
MS đã có cách khắc phục bảng dữ liệu hàng triệu dòng cả 10 năm nay.
 
Web KT

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

Back
Top Bottom