Zum Hauptinhalt springen

So finden Sie eine Zeile nach dem Zellenwert in VBA Excel: Eine detaillierte Anleitung

Microsoft Excel ist eines der beliebtesten Programme für die Arbeit mit Tabellen und Daten. Mit der integrierten Programmiersprache VBA (Visual Basic for Applications) können Sie die Arbeit mit Tabellenkalkulationen automatisieren und verschiedene Datenoperationen durchführen. In diesem Artikel erfahren Sie, wie Sie eine Zeile nach dem Zellenwert in VBA Excel finden.

Manchmal müssen Sie möglicherweise eine bestimmte Zeile in einer großen Tabelle finden, basierend auf dem Wert einer bestimmten Zelle. Sie können beispielsweise nach einer Zeichenfolge suchen, die den Namen eines Kunden enthält, um zusätzliche Details zu seinen Bestellungen oder Kontaktinformationen zu erhalten. Es gibt mehrere Möglichkeiten, diese Aufgabe in VBA Excel zu implementieren, und wir werden uns die effizientesten von ihnen ansehen.

Eine Möglichkeit, eine Zeile nach einem Zellenwert in VBA Excel zu suchen, besteht darin, eine For Each-Schleife zu verwenden, um alle Zellen in einer Spalte oder einem Bereich zu durchforsten und sie mit dem zu suchenden Wert zu vergleichen. Wenn der Wert übereinstimmt, können Sie die Zeilennummer speichern oder die gewünschte Aktion für die gefundene Zeile ausführen. Diese Methode kann nützlich sein, wenn die Tabelle nicht sehr groß ist und die Anzahl der Iterationen nicht zu groß ist.

Code zum Suchen einer Zeichenfolge nach einem Zellenwert:
Sub finden Sie die Zeile()


Dim Suchwert als String


Dim-Bereich von Zellen als Bereich


Dim Zelle als Reichweite


Suchwert = "Kundenname"


Set Bereich von Zellen = Sheets("Tabelle1").Range("A1:A100")


Für jede Zelle im Zellbereich


If Zelle.Value = Suchwert Then


MsgBox "Zeile mit dem Kundennamen gefunden: " & Zelle.Row


Exit Sub


End If


Next Käfig


MsgBox "Keine Zeichenfolge mit dem Namen des Kunden gefunden"


End Sub

In diesem Beispiel verwenden wir eine Variable Suchtwert, um zu bestimmen, nach welchem Wert wir in einer Spalte suchen. Dann setzen wir die Variable Zellbereich, um den Zellbereich anzugeben, in dem die Suche durchgeführt werden soll. In diesem Fall suchen wir nach einem Wert in Spalte A, der sich auf einem Blatt mit dem Namen "Tabelle1" befindet.

Dann verwenden wir eine For Each-Schleife, um alle Zellen im angegebenen Bereich zu durchlaufen. Innerhalb einer Schleife vergleichen wir den Wert jeder Zelle mit dem gewünschten Wert. Wenn sie übereinstimmen, geben wir eine Meldung aus, dass eine Zeichenfolge mit dem Namen des Clients gefunden wurde, und beenden die Codeausführung mit der Exit Sub-Anweisung. Wenn die Schleife ohne Übereinstimmungen beendet wird, wird eine Meldung angezeigt, dass keine Zeichenfolge mit dem Namen des Kunden gefunden wurde.

Suche nach einer Zeile nach Zellenwert in VBA Excel

In VBA Excel können Sie ganz einfach Zeilen finden, die einen bestimmten Wert in einer bestimmten Zelle enthalten. Dazu können Sie eine Schleife verwenden, um alle Zeilen zu durchlaufen, oder die integrierten Funktionen zum Suchen und Filtern von Daten verwenden. In diesem Artikel werden beide Ansätze behandelt.

Die erste Methode besteht darin, eine Schleife zu verwenden, um alle Zeilen zu durchlaufen und die Zellenwerte zu überprüfen. Um dies zu tun, verwenden Sie das For Each-Konstrukt, um alle Zeilen in einem bestimmten Bereich zu durchlaufen. Bei jeder Iteration der Schleife können Sie den Zellenwert mit dem gewünschten Wert vergleichen und die erforderlichen Schritte ausführen. Sie können beispielsweise die Nummer einer gefundenen Zeile anzeigen oder die Formatierung ändern.

Dim cell As RangeDim searchValue As StringsearchValue = "значение"For Each cell In Range("A1:A10")If cell.Value = searchValue Then' Найдена строка с заданным значениемMsgBox "Найдена строка " & cell.Row' Можно выполнить необходимые действия с найденной строкойEnd IfNext cell

Die zweite Methode besteht darin, die integrierten Such- und Filterfunktionen zu verwenden. Eine solche Funktion ist Find . Es ermöglicht Ihnen, einen Wert innerhalb eines bestimmten Bereichs zu finden und die Adresse der Zelle zurückzugeben, die diesen Wert enthält. Dazu müssen Sie Suchparameter wie den gewünschten Wert, den Bereich, in dem Sie suchen möchten, und zusätzliche Parameter festlegen. Die gefundene Adresse kann verwendet werden, um die gewünschte Aktion für die gefundene Zeichenfolge auszuführen.

Dim searchRange As RangeDim foundCell As RangeDim searchValue As StringsearchValue = "значение"Set searchRange = Range("A1:A10")Set foundCell = searchRange.Find(searchValue)If Not foundCell Is Nothing Then' Найдена ячейка с заданным значениемMsgBox "Найдена строка " & foundCell.Row' Можно выполнить необходимые действия с найденной строкойEnd If

Beide Methoden erleichtern das Auffinden von Zeilen, die einen bestimmten Wert in einer Zelle in VBA Excel enthalten. Optional können Sie die Suche weiter anpassen, indem Sie Optionen wie Groß- und Kleinschreibung oder zusätzliche Suchbegriffe angeben. Diese Methoden sind nützlich, wenn Sie die Arbeit mit Daten automatisieren und große Datenmengen verarbeiten.

Schritt 1: Öffnen Sie Visual Basic für Applikationen (VBA) in Excel

Bevor Sie mit der Suche nach einer Zeile nach einem Zellenwert in VBA Excel beginnen, müssen Sie den Visual Basic für Applikationen-Editor (VBA) öffnen. Hier ist, wie man es macht:

  1. Öffnen Sie Excel.
  2. Klicken Sie oben im Excel-Fenster auf die Registerkarte Entwickler. Wenn diese Registerkarte nicht vorhanden ist, müssen Sie sie hinzufügen. Klicken Sie dazu mit der rechten Maustaste auf die Symbolleiste, wählen Sie Symbolleiste anpassen und aktivieren Sie das Kontrollkästchen Entwickler.
  3. Klicken Sie auf der Registerkarte Entwickler auf die Schaltfläche Visual Basic, um den VBA-Editor zu öffnen.
  4. Im geöffneten VBA-Editor-Fenster sehen Sie den Projekt-Explorer links und den Code-Editor rechts.

Jetzt können Sie VBA-Code schreiben, um eine Zeile nach einem Zellenwert in Excel zu suchen.

Schritt 2: Finden Sie das aktive Buch

Sie können das Application-Objekt verwenden, um die aktive Arbeitsmappe zu finden.ActiveWorkbook. Dieses Objekt ist eine aktive Arbeitsmappe und ermöglicht den Zugriff auf ihre Eigenschaften und Methoden.

Im Folgenden finden Sie einen Beispielcode, mit dem Sie die aktive Arbeitsmappe suchen und ihren Titel anzeigen können:

Sub НайтиАктивнуюКнигу()Dim АктивнаяКнига As Workbook' Присваиваем активную книгу переменнойSet АктивнаяКнига = Application.ActiveWorkbook' Выводим название активной книгиMsgBox АктивнаяКнига.NameEnd Sub

Nachdem dieser Code ausgeführt wurde, wird eine Meldung mit dem Namen der aktiven Arbeitsmappe angezeigt.

Jetzt, da wir wissen, wie man die aktive Arbeitsmappe findet, können wir mit dem nächsten Schritt fortfahren - eine Zeile nach dem Zellenwert suchen.

Schritt 3: Wählen Sie das gewünschte Blatt in der Arbeitsmappe aus

Nachdem Sie die Arbeitsmappe geöffnet haben, müssen Sie das Arbeitsblatt auswählen, auf dem die Zeile durchsucht werden soll. In Excel kann jede Arbeitsmappe mehrere Arbeitsblätter enthalten, und Sie müssen den Index oder den Namen des Arbeitsblatts verwenden, um auf das gewünschte Arbeitsblatt zuzugreifen.

Der Blattindex ist die Sequenznummer des Blattes in der Arbeitsmappe, die mit 1 beginnt. Zum Beispiel hat das erste Blatt einen Index von 1, das zweite Blatt einen Index von 2 usw. Um ein Blatt nach Index auszuwählen, verwenden Sie die Worksheets–Eigenschaft der Workbook-Anweisung. Sie können beispielsweise den folgenden Code verwenden, um das erste Blatt auszuwählen:

Worksheets(1).Activate

Wenn Sie den Namen des Blatts kennen, können Sie ihn zum Auswählen des Blatts verwenden. Dazu wird die Sheets-Eigenschaft der Workbook-Anweisung verwendet. Wenn Sie beispielsweise ein Arbeitsblatt mit dem Namen "Tabelle1" auswählen möchten, können Sie den folgenden Code verwenden:

Sheets("Лист1").Activate

Hier ist "Tabelle1" der Name des Arbeitsblatts, das in Excel angegeben ist.

Nachdem Sie das gewünschte Blatt ausgewählt haben, können Sie mit der Suche nach einer Zeile nach dem Zellenwert beginnen.

Schritt 4: Definieren des zu durchsuchenden Datenbereichs

Um eine Zeile nach einem Zellenwert in VBA Excel zu suchen, müssen Sie den Datenbereich definieren, in dem Sie suchen möchten. Der Datenbereich kann entweder als eine oder mehrere Spalten oder als gesamte Tabelle definiert werden.

Je nach Situation können Sie verschiedene Methoden verwenden, um einen Datenbereich zu definieren:

  • Wenn sich die gesamte Tabelle im selben Arbeitsblatt befindet, können Sie mit dem ActiveSheet-Objekt das Arbeitsblatt angeben, und mit den Methoden UsedRange oder CurrentRegion können Sie einen Datenbereich definieren.
  • Wenn sich eine Tabelle in einem bestimmten Arbeitsblattbereich befindet, können Sie das Arbeitsblatt und den Datenbereich mithilfe von Worksheet- und Range-Objekten angeben.
  • Wenn sich eine Tabelle in mehreren Arbeitsblättern befindet, können Sie eine Schleife verwenden, um alle Arbeitsblätter zu durchlaufen und einen Datenbereich in jedem Arbeitsblatt zu definieren.

Nachdem Sie einen Datenbereich definiert haben, können Sie ihn in einer Schleife oder in integrierten VBA-Funktionen verwenden, um nach einer Zeichenfolge mit einem angegebenen Zellenwert zu suchen. Sie können beispielsweise eine For Each-Schleife verwenden, um alle Zeilen in einem Bereich zu durchlaufen und den Wert jeder Zelle zu überprüfen.

Die Bestimmung des richtigen Datenbereichs für die Suche wird die Codeausführung beschleunigen und effizienter machen.

Schritt 5: Verwenden Sie eine Schleife, um einen Wert in einem Bereich zu finden

Nachdem wir Variablen deklariert und einen Bereich definiert haben, können wir eine For Each-Schleife verwenden, um aufeinanderfolgend durch alle Zellen im Bereich zu gehen und den Wert zu finden, den wir benötigen.

So sieht der Code aus:

Dim cell As RangeFor Each cell In myRangeIf cell.Value = searchValue Then' Нашли нужное значение' Выполняем дальнейшие действияEnd IfNext cell

In diesem Beispiel verwenden wir eine For Each-Schleife, um alle Zellen in der Variablen myRange zu durchlaufen. Dann überprüfen wir den Wert jeder Zelle mit einer bedingten If- Anweisung. Wenn der Zellenwert mit dem searchValue übereinstimmt, führen wir die nächsten Schritte aus, die Sie im Code definieren.

Beachten Sie, dass wir die Variable cell verwenden, um die aktuelle Zelle in einer Schleife darzustellen. Wir können auf verschiedene Eigenschaften einer Zelle zugreifen, z. B. Zelle.Value, um einen Wert oder eine Zelle zu erhalten.Address, um die Adresse einer Zelle abzurufen.

Diese Schleife ermöglicht es uns, jede Zelle im Bereich effizient zu durchlaufen und die notwendigen Operationen mit den gefundenen Werten durchzuführen.