Bạn thử xem đúng ý chưa nhéChào các bạn,
Trong file đính kèm mình cần một đoạn code thay thế hàm vlookup trong VBA. Kết quả mình mô tả chi tiết trong file. Các bạn giúp mình. Chân thành cảm ơn
Bạn test thừ file dưới đây. Mã hàng có phân biệt chữ hoa thườngChào các bạn,
Trong file đính kèm mình cần một đoạn code thay thế hàm vlookup trong VBA. Kết quả mình mô tả chi tiết trong file. Các bạn giúp mình. Chân thành cảm ơn
Chưa hiểu ý bạn cố định là sao? Thì bạn không xóa đi mã hàng cột A là đâu mất đâuCảm ơn các bạn, Cột A ở sheet kết quả là cố định các bạn nhé, không được xóa đi. Mình muốn lấy số liệu bằng Sub VBA chứ không phải dùng sự kiện worksheet change. Các bạn xem lại giúp mình. Chân thành cảm ơn.
Cảm ơn bạn, nhưng nếu dùng sự kiện worksheet change mỗi lần mình lại phải kích vào mã hàng thì những cột khác mới nhảy số liệu, trong khi đó thực tế mã hàng của mình khoảng 70.000 ngìn dòng, nên mình muốn dùng sub vbaChưa hiểu ý bạn cố định là sao? Thì bạn không xóa đi mã hàng cột A là đâu mất đâu
Bạn thử lại nheCảm ơn bạn, nhưng nếu dùng sự kiện worksheet change mỗi lần mình lại phải kích vào mã hàng thì những cột khác mới nhảy số liệu, trong khi đó thực tế mã hàng của mình khoảng 70.000 ngìn dòng, nên mình muốn dùng sub vba
Bạn chạy thử sub này:Cảm ơn bạn, nhưng nếu dùng sự kiện worksheet change mỗi lần mình lại phải kích vào mã hàng thì những cột khác mới nhảy số liệu, trong khi đó thực tế mã hàng của mình khoảng 70.000 ngìn dòng, nên mình muốn dùng sub vba
Public Sub sGpe()
Dim Dic As Object, sArr(), dArr(), tArr(), I As Long, J As Long, R As Long, Rw As Long, Tem As String
Set Dic = CreateObject("Scripting.Dictionary")
sArr = Sheets("NGUON").Range("A3", Sheets("NGUON").Range("A1000000").End(xlUp)).Resize(, 5).Value
R = UBound(sArr)
For I = 1 To R
Dic.Item(UCase(sArr(I, 1))) = I
Next I
tArr = Sheets("KETQUA").Range("A3", Sheets("KETQUA").Range("A1000000").End(xlUp)).Value
R = UBound(tArr)
ReDim dArr(1 To R, 1 To 4)
For I = 1 To R
Tem = UCase(tArr(I, 1))
If Dic.Exists(Tem) Then
Rw = Dic.Item(Tem)
For J = 2 To 5
dArr(I, J - 1) = sArr(Rw, J)
Next J
End If
Next I
Sheets("KETQUA").Range("B3").Resize(R, 4) = dArr
Set Dic = Nothing
End Sub