Hoe vind ik een waarde in een array met vba?
Wanneer u waarden in een array opslaat, kunnen er momenten zijn waarop u een array-lookup moet uitvoeren. In dit geval moet u weten welke methoden u kunt gebruiken. Bekijk nu de onderstaande code die u kan helpen begrijpen hoe u naar een waarde in een array kunt zoeken.
- In het eerste deel van de code heb je variabelen die je later in de code moet gebruiken.
- Daarna genereert het volgende deel willekeurige getallen met behulp van RND om de tien waarden uit de array te halen.
- Vervolgens kunt u in een invoervak de waarde invoeren waarnaar u in de tabel wilt zoeken.
- Daarna hebt u een regel die de IF-instructie gebruikt om te controleren of de waarde die u in het invoervak hebt ingevoerd een getal is of niet.
- In dit deel vindt u een code voor de string die u in het berichtvenster kunt gebruiken als de door u ingevoerde waarde niet wordt gevonden.
- Dit deel van de code gebruikt een For (For Each)-lus om elk element in de array te doorlopen en te controleren of de ingevoerde waarde in de array voorkomt of niet.
- Het laatste deel van de code geeft een bericht weer dat aangeeft of de waarde is gevonden of niet.
Option Base 1 Sub vba_array_search() 'this section declares an array and variables 'that you need to search within the array. Dim myArray(10) As Integer Dim i As Integer Dim varUserNumber As Variant Dim strMsg As String 'This part of the code adds 10 random numbers to 'the array and shows the result in the 'immediate window as well. For i = 1 To 10 myArray(i) = Int(Rnd * 10) Debug.Print myArray(i) Next i 'it is an input box that asks 'you the number that you want to find Loopback: varUserNumber = InputBox _ ("Enter a number between 1 and 10 to search for:", _ "Linear Search Demonstrator") 'it's an if statement that checks for the value that you 'have entered in the input box. If varUserNumber = "" Then End If Not IsNumeric(varUserNumber) Then GoTo Loopback If varUserNumber < 1 Or varUserNumber > 10 Then GoTo Loopback 'message to show if the value doesn't found. strMsg = "Your value, " & varUserNumber & _ ", was not found in the array." 'loop through the array and match each value with the 'the value you have entered in the input box. For i = 1 To UBound(myArray) If myArray(i) = varUserNumber Then strMsg = "Your value, " & varUserNumber & _ ", was found at position " & i & " in the array." Exit For End If Next i 'message box in the end MsgBox _ strMsg, vbOKOnly + vbInformation, _ "Linear Search Result" End Sub