VBA Wert in Spalte suchen

In diesem Artikel wird gezeigt, wie Sie mit VBA einen Wert in einer Spalte finden.

Wir können Range.Find verwenden, um eine Wertespalte in VBA zu durchlaufen, um alle Zellen im Bereich zu finden, die den angegebenen Kriterien entsprechen.

Durchlaufen einer Spalte mit Range.Find und Range.FindNext

Im folgenden Beispiel durchlaufen wir die Daten in der Spalte und suchen nach dem Wort „Überfällig“. Wenn es das Wort findet, markiert es die Zelle, indem es die Farbe des Zellentexts in Rot ändert. Anschließend wird die Range.FindNext-Methode verwendet, um zur nächsten Zelle zu wechseln und weiter nach dem Wort zu suchen, wobei die Schleife bis zum Ende des angegebenen Zellbereichs fortgesetzt wird.

1234567891011121314151617 Unter FindLoop()Dim strFirstAddress als StringDim rngFindValue als BereichDim rngSearch As RangeDim rngFind As RangeSet rngFind = ActiveSheet.Range("F1:F17")Set rngSearch = rngFind.Cells(rngFind.Cells.Count)Set rngFindValue = rngFind.Find("Überfällig", rngSearch, xlValues)Wenn nicht rngFindValue nichts ist, dannstrFirstAddress = rngFindValue.AddressrngFindValue.Font.Color = vbRedTunSetze rngFindValue = rngFind.FindNext(rngFindValue)rngFindValue.Font.Color = vbRedSchleife bis rngFindValue.Address = strFirstAddressEnde WennEnd Sub

Wenn der Code ausgeführt wird, speichert er die Adresse der ersten Zelle, in der sich die Daten in der Variablen befinden strErsteAdresse und ändert die Farbe des Textes in Rot. Dann 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 wird die Adresse der Zelle, in der der Wert gefunden wird, mit der Zeichenfolge verglichen strErsteAdresse. Wenn diese nicht identisch sind, wird die Schleife fortgesetzt und jedes Vorkommen des Wortes „Überfällig“ gefunden. Sobald die Schleife das Ende des Zellenbereichs erreicht (dh F17), beginnt sie wieder am Anfang des Bereichs (F1) und setzt die Schleife fort. Sobald sie zum zweiten Mal die Zellenadresse F3 erreicht, da sie mit der gespeicherten Variablen identisch ist strErsteAdresse, wird die Schleife beendet.

wave wave wave wave wave