VBA – Wert in Spalte suchen
In diesem Artikel zeigen wir Ihnen, wie Sie mit VBA einen Wert in einer Spalte suchen können.
Mit Range.Find kann man in VBA eine Spalte mit Werten in einer Schleife durchlaufen, um alle Zellen, die den angegebenen Kriterien entsprechen, im Bereich zu finden.
Eine Spalte mit Range.Find und Range.FindNext durchlaufen
Im folgenden Beispiel werden die Spaltendaten in einer Schleife durchlaufen und nach dem Wort „Überfällig“ gesucht. Wenn das Wort gefunden wird, wird die Zelle durch Ändern der Zellentextfarbe in rot markiert. Dann wird die Methode Range.FindNext verwendet, um zur nächsten Zelle zu gelangen und weiter nach dem Wort zu suchen, wobei die Schleife bis zum Ende des angegebenen Zellenbereichs fortgesetzt wird.
Sub Suchschleife()
Dim strErsteAdresse As String
Dim rngWertSuchen As Range
Dim rngSuche As Range
Dim rngSuchen As Range
Set rngSuchen = ActiveSheet.Range("F1:F17")
Set rngSuche = rngSuchen.Cells(rngSuchen.Cells.Count)
Set rngWertSuchen = rngSuchen.Find("Overdue", rngSuche, xlValues)
If Not rngWertSuchen Is Nothing Then
strErsteAdresse = rngWertSuchen.Address
rngWertSuchen.Font.Color = vbRed
Do
Set rngWertSuchen = rngSuchen.FindNext(rngWertSuchen)
rngWertSuchen.Font.Color = vbRed
Loop Until rngWertSuchen.Address = strErsteAdresse
End If
End Sub
Wenn der Code ausgeführt wird, speichert er die Adresse der ersten Zelle, in der die Daten gefunden wurden, in der Variablen strErsteAdresse und ändert die Textfarbe in rot. Anschließend wird eine Schleife erstellt, um die nächste Zelle zu finden, die die erforderlichen Daten enthält. Wenn der Wert gefunden wird, wird die Farbe des Textes in rot geändert und dann die Adresse der Zelle, in der der Wert gefunden wurde , mit der Zeichenkette strErsteAdresse verglichen. Wenn diese nicht übereinstimmen, wird die Schleife fortgesetzt und jedes Vorkommen des Wortes „Überfällig“ gesucht. Sobald die Schleife das Ende des Zellenbereichs erreicht (d. h. F17), beginnt sie wieder am Anfang des Bereichs (F1) und setzt sich fort. Sobald die Schleife zum zweiten Mal die Zellenadresse F3 erreicht, die mit der gespeicherten Variablen strErsteAdresse übereinstimmt, wird sie angehalten.