Hỏi cách tạo hàm Vlookup bằng VBA

Liên hệ QC

ltrunghieu

Thành viên mới
Tham gia
23/12/09
Bài viết
17
Được thích
1
Em mới tìm hiểu về VBA, đang tìm hiểu về cách tạo tạo hàm và chạy Addin. em có công thức như sau A1=VLOOKUP($C$5,KhachHang,A12,0), hoặc là A1=VLOOKUP($C$5,KHACH!B26:F29,A12,0). Em muốn tạo 1 hàm là KH; mà lên mạng mấy bữa nay tìm không thấy ai hỏi câu như vậy ( có lẻ dễ quá nên không ai hỏi chăng) nên xin gởi lên đây nhờ mấy anh giúp. Cái này em mới tìm hiểu về VBA nên muốn biết tạo 1 công thức thì làm sao thôi. Mong các anh chỉ dạy cho đàn em học hỏi, Em cám ơn các anh nhé!
 
Em mới tìm hiểu về VBA, đang tìm hiểu về cách tạo tạo hàm và chạy Addin. em có công thức như sau A1=VLOOKUP($C$5,KhachHang,A12,0), hoặc là A1=VLOOKUP($C$5,KHACH!B26:F29,A12,0). Em muốn tạo 1 hàm là KH; mà lên mạng mấy bữa nay tìm không thấy ai hỏi câu như vậy ( có lẻ dễ quá nên không ai hỏi chăng) nên xin gởi lên đây nhờ mấy anh giúp. Cái này em mới tìm hiểu về VBA nên muốn biết tạo 1 công thức thì làm sao thôi. Mong các anh chỉ dạy cho đàn em học hỏi, Em cám ơn các anh nhé!
Cái này cần gì tạo hàm ---> Sao không dùng Define Name nhỉ?
Đặt name KH, Referto =VLOOKUP($C$5,KHACH!B26:F29,A12,0)
 
Upvote 0
Vấn đề ở đây là em muốn tạo thành 1 hàm KH từ công thức đó thì làm như thế nào thôi!! chứ công thức đó cũng đâu có dài, khó gì đâu mà phải tạo hàm bằng VBA. Tuy nhiên, Em muốn học từ cái đơn giản nhất thôi mà. Anh/Chị nào vui lòng tạo dùm em 1 hàm KH bằng VBA có công thức =VLOOKUP($C$5,KHACH!B26:F29,A12,0). Rồi em sẽ tạo thành Addin để chạy thử cho biết là nó hoạt động ra sao đó mà. Mong anh/chị giúp dùm em nhé.
 
Upvote 0
Rất xin lỗi vì sự chậm trễ!

sao ko ai giúp em hết vậy? "Muốn biết phải hỏi " vậy mà em đợi hoài ko ai giúp em hết. hic hic
Ở đây xin giới thiệu với bạn 2 cách sau:

C1:
PHP:
Sub Lookup()
      Range("J6").Select
      ActiveCell.FormulaR1C1 = "=VLOOKUP(R[-1]C[-9],data1,4,0)"
      Range("J7").Select
End Sub
Cách này là ta gán công thức vô ô [J6]
data1 là vùng ta đã gán tên;
R[-1]C[-9] là ô cách trên [J6] 1 hàng & lùi lại 9 cột (Thực ra đó là [A5]
4: Cột cần tìm trong hàm VLOOKUP() trong excel;(giống như trong [A12] của bạn đang chứa trị số này vậy)
0 ~ FALSE

Cách 2:
Gán trị trực tiếp do hàm VLOOKUP() đem lại:

PHP:
Sub VLOOKUP_()
  [J7].Value = Application.WorksheetFunction.VLookup([A4].Value, _
          Range("Data1"), [A12], False)
End Sub
Đây là cách mà mọi người hay gọi là gọi hàm của excel từ VBA

Xin lưu ý một số vấn đề sau:

Cũng như trong trang tính excel, hàm này sẽ có thể đưa ra lỗi do không tìm thấy dữ liệu, hay ta cho số cột tìm vượt quá vùng tra,. . .
Để ngừa chuyện này ta tìm cách cách để bẫy lỗi. Cách 1 ta bẫy lỗi khó hơn;
Cách hai bẫy có thể như sau
PHP:
Sub VLOOKUP_()
  On Eror Goto Loi
  [J7].Value = Application.WorksheetFunction.VLookup([A4].Value, _
          Range("Data1"), [A12], False)
Err :  Exit Function
Loi:   MsgBox "Error!",,"GPE Xin Luu Ý"
        Resume Err
End Sub
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Vấn đề ở đây là em muốn tạo thành 1 hàm KH từ công thức đó thì làm như thế nào thôi!! chứ công thức đó cũng đâu có dài, khó gì đâu mà phải tạo hàm bằng VBA. Tuy nhiên, Em muốn học từ cái đơn giản nhất thôi mà. Anh/Chị nào vui lòng tạo dùm em 1 hàm KH bằng VBA có công thức =VLOOKUP($C$5,KHACH!B26:F29,A12,0). Rồi em sẽ tạo thành Addin để chạy thử cho biết là nó hoạt động ra sao đó mà. Mong anh/chị giúp dùm em nhé.
Muốn tham khảo thêm về hàm Vlookup nâng cao thì bạn xem trong Link sau nha. Hàm VlookupD
http://www.giaiphapexcel.com/forum/showthread.php?t=18404
 
Upvote 0
Web KT

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

Back
Top Bottom