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

Liên hệ QC
Chào mọi người

Cho em hỏi là cùng 1 đoạn code mà trên máy em lại không chạy được nhưng qua máy khác lại chạy được.

Mọi người chỉ cho em khắc phục lỗi này với ạ. Em cám ơn!
Thì ít ra bạn cũng lôi cái code đó lên đây.Và xem nó lỗi ở đâu.Tốt nhất gửi file lỗi lên.
 
Chào mọi người

Cho em hỏi là cùng 1 đoạn code mà trên máy em lại không chạy được nhưng qua máy khác lại chạy được.

Mọi người chỉ cho em khắc phục lỗi này với ạ. Em cám ơn!
lỗi cụ thể là lỗi j bạn? bạn thử chụp hình lên đây xem sao
 
lỗi cụ thể là lỗi j bạn? bạn thử chụp hình lên đây xem sao
Em gửi file đính kèm. nhờ mọi người xem giúp em. bình thường em mở file là nó chạy bình thường nhưng giờ nó không chạy được. nhưng đem qua máy khác thì vẩn chạy bình thường. em cám ơn!
 

File đính kèm

  • gop file.xlsm
    18.4 KB · Đọc: 9
Mình gửi vd lên nhờ các bắc bớt chút thời gian chỉ dùm vài chiêu
Cảm ơn các bạn nhiều!!!

Ngắn nhất cho bạn. Dể hiểu nhất cho bạn......Buye

Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B4")) Is Nothing Then
        Range("C4") = "=IFERROR(VLOOKUP(RC[-1],MA!R3C2:R7C4,2,0),"""")"
        Range("D4") = "=IFERROR(VLOOKUP(RC[-2],MA!R3C2:R7C4,3,0),"""")"
        Range("C4:d4").Value = Range("C4:d4").Value
End If
End Sub
 

File đính kèm

  • vlookupxxx.xlsb
    17.9 KB · Đọc: 30
Ngắn hơn một chút:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B4")) Is Nothing Then
    Range("C4").Value = Evaluate("=IFERROR(VLOOKUP(B4,MA!$B$3:$D$7,2,0),"""")")
    Range("D4").Value = Evaluate("=IFERROR(VLOOKUP(B4,MA!$B$3:$D$7,3,0),"""")")
End If
End Sub
 
Em gửi file đính kèm. nhờ mọi người xem giúp em. bình thường em mở file là nó chạy bình thường nhưng giờ nó không chạy được. nhưng đem qua máy khác thì vẩn chạy bình thường. em cám ơn!
Tôi có mở file, nhìn code vậy tôi cũng chưa ra được lỗi gì? Máy này chạy được, máy kia ko chạy được có thể do phần Path (không tồn tại đường dẫn này).
Như một số chuyên gia có tư vấn, việc gộp File bạn nên dùng thử Power Query, có tài liệu của thầy @ptm0412.
Thử xem sao nhé
 
Tôi có mở file, nhìn code vậy tôi cũng chưa ra được lỗi gì? Máy này chạy được, máy kia ko chạy được có thể do phần Path (không tồn tại đường dẫn này).
Như một số chuyên gia có tư vấn, việc gộp File bạn nên dùng thử Power Query, có tài liệu của thầy @ptm0412.
Thử xem sao nhé
dạ em cám ơn ạ!
 
Ngắn nhất cho bạn. Dể hiểu nhất cho bạn......Buye

Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B4")) Is Nothing Then
        Range("C4") = "=IFERROR(VLOOKUP(RC[-1],MA!R3C2:R7C4,2,0),"""")"
        Range("D4") = "=IFERROR(VLOOKUP(RC[-2],MA!R3C2:R7C4,3,0),"""")"
        Range("C4:d4").Value = Range("C4:d4").Value
End If
End Sub
Ngắn hơn một chút:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B4")) Is Nothing Then
    Range("C4").Value = Evaluate("=IFERROR(VLOOKUP(B4,MA!$B$3:$D$7,2,0),"""")")
    Range("D4").Value = Evaluate("=IFERROR(VLOOKUP(B4,MA!$B$3:$D$7,3,0),"""")")
End If
End Sub
Chào bạn,
Tương tự như yêu cầu của chủ đề,
Bạn ban đầu Vlookup cho 1 giá trị. Nếu mở rộng thêm nhiều giá trị tương tự thì code VBA thế nào vậy, có thể giúp mình được không.
Thanks
 

File đính kèm

  • vlookup cho dãy.xlsb
    17.4 KB · Đọc: 10
Chào bạn,
Tương tự như yêu cầu của chủ đề,
Bạn ban đầu Vlookup cho 1 giá trị. Nếu mở rộng thêm nhiều giá trị tương tự thì code VBA thế nào vậy, có thể giúp mình được không.
Thanks
Dùng thử phương thức tìm kiếm Find xem sao, click Update
Code
Mã:
Sub FindMethod()
Dim i&, Rng As Range, KQ(), Ma()
Ma = Range(Sheets("CT").[B4], Sheets("CT").[B500].End(3))
ReDim KQ(1 To UBound(Ma), 1 To 2)
For i = 1 To UBound(Ma)
    Set Rng = Sheets("MA").[B3:B500].Find(Ma(i, 1), , , 1)
    If Not Rng Is Nothing Then
        KQ(i, 1) = Rng(, 1)
        KQ(i, 2) = Rng(, 2)
    End If
Next
Sheets("CT").[C4].Resize(i - 1, 2) = KQ
End Sub
 

File đính kèm

  • vlookup cho dãy.xlsb
    22.1 KB · Đọc: 67
Có đúng xì tai của anh @quanghai1969 ??? (thấy like là biết a khỏe rùi)
(Spam chút)
 
yêu câu thứ 1: khi thay đổi bất kỳ bên sheet "LLNV" thì sheet "chitiet" cập nhật theo (giống tính năng của hàm vlookup)
cái này có thể sử dụng find method trong sự kiện worksheet change cho sheet "LLNV"
tuy nhiên cho hỏ là: các mã cột C của sheet "chi tiet" có trùng nhau ko?

câu hỏi 2: nếu nằm ở file khác thì phức tạp hơn là phải mở file đó ra rồi dùng phương pháp Find
(hoặc dùng ADO, cái này thì tôi chỉ biết là vậy chứ chưa biết làm)
yêu câu thứ 1: khi thay đổi bất kỳ bên sheet "LLNV" thì sheet "chitiet" cập nhật theo (giống tính năng của hàm vlookup)
cái này có thể sử dụng find method trong sự kiện worksheet change cho sheet "LLNV"
tuy nhiên cho hỏ là: các mã cột C của sheet "chi tiet" có trùng nhau ko?

câu hỏi 2: nếu nằm ở file khác thì phức tạp hơn là phải mở file đó ra rồi dùng phương pháp Find
(hoặc dùng ADO, cái này thì tôi chỉ biết là vậy chứ chưa biết làm)
Câu 2 bạn đã nhận được sự giúp đỡ chưa? Mình cũng đang tìm đề tài này.
Rất mong bạn và các bạn trên diễn đàn chia sẻ
Cảm ơn
 
chào mọi người
cho em hỏi nếu link từ 1 file khác sang thi nên dùng code nào ạ

Mong mọi người giúp đỡ
 
chào mọi người
cho em hỏi nếu link từ 1 file khác sang thi nên dùng code nào ạ

Mong mọi người giúp đỡ
Link File thì không cần dùng code, cứ gõ dấu = ; hoặc copy - paste link thông thường của Excel là được
Nhưng link file của Excel càng thêm rắc rối
 
Cái ni cũng vừa đủ sòai nề

PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B4:B99")) Is Nothing Then
    Dim Rng As Range, sRng As Range, Sh As Worksheet
   
    Set Sh = ThisWorkbook.Worksheets("MA")
    Set Rng = Sh.Range(Sh.[b2], Sh.[b2].End(xlDown))
    Set sRng = Rng.Find(Target.Value, , xlFormulas, xlWhole)
    If sRng Is Nothing Then
        MsgBox "Nothing"
    Else
        Target.Offset(, 1).Resize(, 2).Value = sRng.Offset(, 1).Resize(, 2).Value
    End If
End If
End Sub
Code viết rất hay, cảm on bạn sẽ để dành dùng khin cần
 
Chào các bác.
Nhờ các bác thêm giúp e đoạn code để có thể tìm từ cột MA sang nhiều sheet với ạ.
Hiện tại ở File e đã lấy từ một bác ở trên, chạy khá ổn, giờ e muốn nó chạy thêm vài sheet nữa để.
 

File đính kèm

  • vlookup (2) (1).xls
    49.5 KB · Đọc: 19
Web KT
Back
Top Bottom