Tại sao phải biết cách viết code hàm vlookup trong vba excel?
Nếu biết được cách lập trình hàm vlookup trong vba excel bạn có lợi gì ?
* Giúp bạn ứng dụng excel công việc một cách hiệu quả.
* Hiểu bản chất mà các lập trình viên của Microsoft tích hợp hàm vào Excel như thế nào.
* Tự xây dựng một hàm để phục công việc.
Xem video về cách tự xây dựng (code - lập trình) hàm vlookup
Sau đây là đoạn code hàm vlookup trong vba excel
Function vlookup_NTS(oTim As Range, vungTim As Range, viTri_CotTim As Integer, viTri_CotTraVeKetQua As Integer) As String
 giatriTim = oTim.Value
 arrDuLieuVungCho = vungTim
 
 Dim tongdong As Integer
 Dim tongcot As Integer
 
 tongdong = UBound(arrDuLieuVungCho, 1) ' 1 quy dih lay tong so dong
 tongcot = UBound(arrDuLieuVungCho, 2) ' 2 quy dih lay tong so cot
 
 Dim ketQuaTraVe As String
 
    For iDong = 1 To tongdong
        For iCot = 1 To tongcot
            giatri_O = arrDuLieuVungCho(iDong, iCot) ' gia tri o trong vong lap
            If iCot = viTri_CotTim And giatri_O = giatriTim Then
                ketQuaTraVe = arrDuLieuVungCho(iDong, viTri_CotTraVeKetQua)
                vlookup_NTS = ketQuaTraVe
                Exit Function
            End If
        Next iCot
    Next iDong
    
   If ketQuaTraVe = "" Then
    vlookup_NTS = "Not found !"
   End If
End Function
Cách viết thứ 2 hàm Vlookup trong VBA Excel:
Public Function VloopkupMY(MaLop, VungChon, ChiSoCotCanLay, SoSanhHoaThuong)
    myArray = VungChon
    KetQuaTim = "Khong tim thay !"
    For i = 1 To UBound(myArray, 1)
            MaLopCurrent = myArray(i, 1)
                If F_SoSanhHoaThuong(MaLopCurrent, MaLop, SoSanhHoaThuong) Then
                    '' ChiSoCotCanLay & ChiSoCotCanLay
                    If ChiSoCotCanLay = 1 Or ChiSoCotCanLay = "TenLop" Then
                        KetQuaTim = myArray(i, 2)
                    ElseIf ChiSoCotCanLay = 2 Or ChiSoCotCanLay = "GhiChu" Then
                        KetQuaTim = myArray(i, 3)
                    ElseIf ChiSoCotCanLay = 3 Or ChiSoCotCanLay = "GiaoVien" Then
                        KetQuaTim = myArray(i, 4)
                    End If
                    ' END: ChiSoCotCanLay & ChiSoCotCanLay
                    Exit For
                End If ' If MaLopCurrent = MaLop
            
    Next
    VloopkupMY = KetQuaTim
End Function
Public Function F_SoSanhHoaThuong(nd1, nd2, sosanh)
    If sosanh = 0 Then
        nd1 = LCase(nd1)
        nd2 = LCase(nd2)
    End If
   F_SoSanhHoaThuong = (nd1 = nd2)
End Function
 
Cách tự viết code (lập trình) hàm vlookup trong vba excel