Wie finde ich mit vba einen wert in einem array?
Wenn Sie Werte in einem Array speichern, kann es vorkommen, dass Sie eine Array-Suche durchführen müssen. In diesem Fall müssen Sie die Methoden kennen, die Sie verwenden können. Schauen Sie sich nun den folgenden Code an, der Ihnen helfen kann, zu verstehen, wie Sie in einem Array nach einem Wert suchen.
- Im ersten Teil des Codes befinden sich Variablen , die Sie später im Code verwenden müssen.
- Danach generiert der nächste Teil mithilfe von RND Zufallszahlen , um die zehn Werte aus dem Array abzurufen.
- Anschließend können Sie in einem Eingabefeld den Wert eingeben, nach dem Sie in der Tabelle suchen möchten.
- Danach haben Sie eine Zeile, die mit der IF-Anweisung prüft, ob der von Ihnen in das Eingabefeld eingegebene Wert eine Zahl ist oder nicht.
- In diesem Teil haben Sie einen Code für die Zeichenfolge, die im Meldungsfeld verwendet werden soll, wenn der von Ihnen eingegebene Wert nicht gefunden wird.
- Dieser Teil des Codes verwendet eine For-Schleife (For Each), um jedes Element im Array zu durchlaufen und zu prüfen, ob der von Ihnen eingegebene Wert im Array vorhanden ist oder nicht.
- Im letzten Teil des Codes wird eine Meldung angezeigt, die angibt, ob der Wert gefunden wurde oder nicht.
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