Vlookup Trong VBA

Menu Tự học VBA
  • Trang chủ
  • Diễn đàn Bài viết mới Tìm chủ đề
  • Có gì mới Bài viết mới Hoạt động mới nhất
Đăng nhập Đăng ký Có gì mới? Tìm kiếm

Tìm kiếm

Everywhere Chủ đề This forum This thread Chỉ tìm trong tiêu đề Bởi: Tìm Tìm kiếm nâng cao…
  • Bài viết mới
  • Tìm chủ đề
Menu Đăng nhập Đăng ký
  • Cách upload ảnh lên diễn đàn
  • Trang chủ
  • Diễn đàn
  • Kỹ thuật xử lý Excel
  • Lập trình VBA
Vlookup trong VBA
  • Thread starter tuhocvba
  • Ngày gửi 17/8/19
tuhocvba

tuhocvba

Administrator
Thành viên BQT Hôm nay tôi sẽ trình bày Vlookup trong VBA. Tôi cố gắng trình bày dễ hiểu nhất có thể. Bài viết này, diễn đàn thực hiện theo lời hứa với @songcham . Trước hết các bạn hãy xem hình ảnh dưới đây: Bạn cần đăng nhập để thấy hình ảnh Ở đây tôi xây dựng UserForm gồm có ô Textbox1. Người dùng nhập ký tự cần tìm kiếm vào ô này. Macro sẽ thực hiện tìm kiếm giá trị này trong vùng tìm kiếm [B2 : D18 ] Mã: Private Sub CommandButton1_Click() Dim kq As String Dim x As String 'Gan tri tri cua Textbox1 tren UserForm cho x x = UserForm1.TextBox1.Value kq = timkiem(x) MsgBox kq End Sub Phần code VBA sử dụng Vlookup được thể hiện như dưới đây: Mã: Function timkiem(ByVal x As String) As String Dim r As Range 'thiet dinh vung tim kiem Set r = ThisWorkbook.Sheets(1).Range(Cells(2, 2), Cells(18, 4)) On Error GoTo ErrHdl With ActiveSheet 'TIm kiem trong vung tim kiem data, ket qua tra ve lay o cot C timkiem = _ Application.WorksheetFunction.VLookup(x, r, 2, False) End With Exit Function ErrHdl: 'Nếu lỗi xảy ra do hàm Vlookup không tìm kiếm thấy, thì nhảy tới đây timkiem = "Khong tim thay" End Function File các bạn có thể download ở đây: Bạn cần đăng nhập để thấy link . Bây giờ tôi di chuyển lại vị trí cột và thực hiện tìm kiếm. Bạn cần đăng nhập để thấy đính kèm Kết quả thật bất ngờ, nó không tìm thấy nữa. Lý do là 2 ghi ở trên cột B của excel được macro hiểu là số. Còn 2 ghi trong ô textbox được VBA hiểu là string. Do đó, trong trường hợp tìm số, thì code trên phải sửa lại hàm tìm kiếm: Mã: Function timkiem(ByVal x As String) As String Dim r As Range Dim y As Long 'sua lai code de tim kiem so 'thiet dinh vung tim kiem Set r = ThisWorkbook.Sheets(1).Range(Cells(2, 2), Cells(18, 4)) y = Val(x) 'sua lai code de tim kiem so On Error GoTo ErrHdl With ActiveSheet 'TIm kiem trong vung tim kiem data, ket qua tra ve lay o cot C timkiem = _ Application.WorksheetFunction.VLookup(y, r, 2, False) 'tim kiem y, chu y khong phai la tim kiem x End With Exit Function ErrHdl: timkiem = "Khong tim thay" End Function Hãy chú ý các dòng code 3,6,11 là các vị trí tôi đã sửa để thực hiện tìm kiếm được với số. Và bây giờ kết quả đúng như mong đợi. Bạn cần đăng nhập để thấy đính kèm Bạn phải đăng nhập hoặc đăng ký để bình luận. Chia sẻ: Facebook Twitter WhatsApp Email Link
  • Trang chủ
  • Diễn đàn
  • Kỹ thuật xử lý Excel
  • Lập trình VBA
Top

Từ khóa » Cách Sử Dụng Vlookup Trong Vba