range ke array

  1. 4 minggu lalu

    hi all,

    mau tanya bagaimana caranya dengan VBA ini utk mengubah dari range ke array dan search string ke array tersebut jika ada di array maka ambil value dari kolom yg lain..

    trims,

  2. Caton

    Nov 15 Terverifikasi Indonesia + 15.164 Poin

    @ddtopgun ...

    Normalnya, bisa menggunakan script Variant = Range, misalkan :

    Dim xArray
    
    xArray = Sheet1.Range("A1:A100")

    Script di atas akan menghasilkan Array 2 dimensi :

    Watch01.png

    Untuk menghasilkan Array 1 dimensi, dapat menggunakan fungsi Transpose :

    xArray = Application.Transpose(Sheet1.Range("A1:A100").Value)

    Watch02.png

    ... mengubah dari range ke array dan search string ke array tersebut jika ada di array maka ambil value dari kolom yg lain ...

    Misalkan, akan diambil nilai pada range A5:C50. Pencarian data dilakukan pada kolom A dan nilai yang akan dikembalikan ada pada kolom C. Maka dapat disusun script misalkan seperti berikut :

    ...
    Dim vFind As Variant, vResult As Variant
    Dim lX As Long
    Dim xArray   
        
    xArray = Sheet1.Range("A5:C50").Value
        
    vFind = 19800526001   '+-- Yang akan dicari.
    For lX = LBound(xArray) To UBound(xArray)
        If xArray(lX, 1) = vFind Then
            vResult = xArray(lX, 3)
            Exit For
        End If
    Next
    ...

    atau bisa juga dengan menggunakan script berikut :

    ...
    Dim vFind As Variant, vResult As Variant
    Dim xArray As Variant, vIdx As Variant
    
    xArray = Sheet1.Range("A5:C50").Value
    
    With Application
        vFind = 19800526001   '+-- Yang akan dicari.
        vIdx = .Match(vFind, .Index(xArray, 0, 1), 0)
        If IsNumeric(vIdx) Then
            vResult = xArray(vIdx, 3)
        End If
    End With
    ...

    Contoh lainnya dapat dilihat pada diskusi ini.

    Demikian.

 

atau Mendaftar untuk ikut berdiskusi!