VBA Tip: Position in an Array

To find the position of a value in an array, copy this function into a module:


Function arrayPos(myArray, myValue)
    
    'https//www.excel-pratique.com/en/vba_tricks/position-in-array-function
    
    arrayPos = -1
    
    For i = LBound(myArray) To UBound(myArray)
        If myArray(i) = myValue Then 'If value found
            arrayPos = i
            Exit For
        End If
    Next
    
End Function

The arrayPos function will then return the position of the first value found in the array (or -1 if the value was not found in the array).

Here's a simple example that will look for the presence of the value of the testValue variable in the testArray array and then display its position in a MsgBox.

Sub test()
    
    testArray = Array(23, 67, 38, 17, 854, 9, 92)

    testValue = 9
    
    MsgBox arrayPos(testArray, testValue)

End Sub