VBA (Visual Basic for Applications) ist eine integrierte Programmiersprache, die in Microsoft Excel zum Automatisieren von Aufgaben und zum Erstellen von Makros verwendet wird. Eines der nützlichsten Elemente von VBA ist die Funktion Find, mit der Sie nach einem Wert innerhalb eines angegebenen Zellbereichs suchen können.
Die Funktion Find verfügt über umfangreiche Funktionen und kann verwendet werden, um nach bestimmten Werten, leeren Zellen, Formeln zu suchen und verschiedene Parameter einzustellen. Ihr Hauptvorteil liegt in der schnellen Suche, insbesondere bei großen Datenmengen in einer Excel-Tabelle.
Um die Funktion Find zu verwenden, müssen Sie den Zellbereich angeben, in dem Sie suchen möchten, sowie den zu suchenden Wert. Optional können Sie Parameter wie Suchrichtung, Datentyp und andere angeben.
Beispiel für die Verwendung der Funktion Find:
Sub FindExample()
Dim rng As Range
Dim cell As Range
' Указываем диапазон ячеек, в котором требуется выполнить поиск
Set rng = Range("A1:A10")
' Ищем значение "apple" в указанном диапазоне
Set cell = rng.Find(What:="apple")
' Проверяем, найдено ли значение
If Not cell Is Nothing Then
' Если значение найдено, выводим координаты ячейки
MsgBox "Значение 'apple' найдено в ячейке " & cell.Address
Else
' Если значение не найдено, выводим сообщение
MsgBox "Значение 'apple' не найдено"
End If
End Sub
In diesem Beispiel wird im Zellbereich A1:A10 nach dem Wert "apple" gesucht. Wenn ein Wert gefunden wird, wird eine Meldung mit den Koordinaten der Zelle angezeigt, in der er gefunden wurde. Wenn kein Wert gefunden wird, wird eine Meldung angezeigt, dass kein Ergebnis vorliegt.
VBA Excel: Funktion Suchen und verwenden
Die Syntax der Find-Funktion lautet wie folgt:
expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)
- What ist der zu findende Wert;
- After - Die Zelle, nach der die Suche gestartet werden soll;
- LookIn - Legt fest, in welchen Teilen der Zelle gesucht werden soll (Wert, Formeln, Kommentare usw.);
- LookAt - bestimmt, nach welcher Übereinstimmung gesucht wird (vollständige Übereinstimmung, partielle Übereinstimmung usw.);
- SearchOrder - Bestimmt die Suchreihenfolge (nach Spalten oder Zeilen);
- SearchDirection - Bestimmt die Suchrichtung (nach oben oder unten, nach links oder rechts);
- matchCase - Bestimmt, ob bei der Suche Groß-/Kleinschreibung beachtet wird;
- MatchByte - Bestimmt, ob die Zeichenbreite bei der Suche berücksichtigt wird;
- SearchFormat - Bestimmt, ob Werte nach dem Zellenformat gesucht werden sollen.
Die Funktion Find gibt ein Range-Objekt zurück, das die erste Zelle mit dem gefundenen Wert enthält. Wenn kein Wert gefunden wird, wird Nothing zurückgegeben.
Beispiel für die Verwendung der Funktion Find:
Dim rng As RangeSet rng = Range("A1:A10")Dim cell As RangeSet cell = rng.Find(What:="apple", LookIn:=xlValues, LookAt:=xlWhole)If Not cell Is Nothing ThenMsgBox "Значение найдено в ячейке " & cell.AddressElseMsgBox "Значение не найдено"End If
In diesem Codebeispiel finden wir den Wert "apple" im Zellbereich A1:A10, und wenn er gefunden wird, geben wir eine Nachricht mit der Adresse der ersten gefundenen Zelle aus.
Die Find-Funktion ist ein leistungsfähiges Werkzeug zum Suchen und Analysieren von Daten in VBA Excel. Es ermöglicht Ihnen, den Prozess der Suche und Verarbeitung von Informationen zu automatisieren, was die Arbeit mit Tabellen und Datenlisten erheblich vereinfacht.
Beschreibung der Funktion Find
Syntax der Funktion Find:
.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)
What: legt den zu suchenden Wert fest.
After: gibt die Zelle an, von der die Suche gestartet werden soll. Wenn ein Wert angegeben ist, wird nach dieser Zelle gesucht. Wenn kein Wert angegeben ist, beginnt die Suche mit der ersten Zelle des Bereichs.
LookIn: gibt an, in welchen Zellen gesucht werden soll. Kann Werte annehmen: xlValues (nur Werte), xlFormulas (nur Formeln) oder xlComments (nur Kommentare).
LookAt: bestimmt, ob eine genaue Übereinstimmung vorliegen muss oder nicht. Kann Werte annehmen: xlWhole (nur genaue Übereinstimmung) oder xlPart (übereinstimmender Teil des Textes).
SearchOrder: gibt die Suchrichtung an. Kann Werte annehmen: xlByRows (in Zeilen) oder xlByColumns (spaltenweise).
SearchDirection: legt fest, ob die Suche nach rechts oder links fortgesetzt werden soll (wenn SearchOrder = xlByRows) oder nach oben oder unten (wenn SearchOrder = xlByColumns). Kann Werte annehmen: xlNext (nächste Zelle) oder xlPrevious (vorherige Zelle).
MatchCase: gibt an, ob die Suche Groß-/Kleinschreibung berücksichtigen soll. Kann einen Wert annehmen True (groß- und Kleinschreibung beachten) oder False (groß- und Kleinschreibung nicht beachten).
MatchByte: bestimmt, ob die Suche die als Vergleichsmodus verwendeten Doppelbyte-Zeichen der Sprache berücksichtigen soll. Kann einen Wert annehmen True oder False.
SearchFormat: gibt das Format an, das bei der Suche berücksichtigt werden soll. Kann einen Wert annehmen True (format berücksichtigen) oder False (format nicht berücksichtigen).
Die Funktion Find gibt die Zelle zurück, in der der Wert gefunden wurde.
Beispiel für die Verwendung der Funktion Find:
Set cell = Range("A1:Z100").Find(What:="Text", LookIn:=xlValues, LookAt:=xlPart)
In diesem Beispiel suchen wir nach "Text" im Zellbereich von A1 bis Z100. Die Parameter LookIn und LookAt geben an, dass die Zellenwerte durchsucht werden und nach einem übereinstimmenden Teil des Textes gesucht wird.
Nach der Ausführung dieses Codes enthält die Variable cell einen Verweis auf die Zelle, in der der gesuchte Text gefunden wurde.
Verwenden der Funktion Find in Excel VBA
Um die Funktion Find zu verwenden, müssen Sie die folgenden Parameter angeben:
- What - der zu suchende Wert oder Text. Kann eine Zeichenfolge oder eine Zahl sein.
- After - die Zelle, nach der die Suche gestartet werden soll. Wenn Sie diesen Parameter nicht angeben, wird die Suche von der aktiven Zelle aus durchgeführt.
- LookIn - bestimmt, wo nach einem Wert gesucht werden soll. Kann einen der folgenden Werte annehmen: xlValues (nur Werte), xlFormulas (nur Formeln) oder xlComments (nur Kommentare).
- LookAt - definiert den Vergleichsmodus. Kann einen der folgenden Werte annehmen: xlWhole (genaue Übereinstimmung suchen), xlPart (partielle Übereinstimmung suchen).
- SearchOrder - bestimmt die Suchreihenfolge. Kann einen der folgenden Werte annehmen: xlByRows (Zeile für Zeile), xlByColumns (Spalte für Zeile).
- SearchDirection - bestimmt die Suchrichtung. Kann einen der folgenden Werte annehmen: xlNext (nächste Übereinstimmung), xlPrevious (vorherige Übereinstimmung).
- MatchCase - legt fest, ob die Groß–/Kleinschreibung bei der Suche berücksichtigt werden soll (True – berücksichtigen, False - ignorieren).
- MatchByte - legt fest, ob doppelte Zeichen berücksichtigt werden sollen (True – berücksichtigen, False – ignorieren).
Beispiel für die Verwendung der Funktion Find:
Dim rng As Range
Set rng = Range("A1:D10")
Dim cell As Range
Set cell = rng.Find(What:="apple", LookIn:=xlValues, LookAt:=xlWhole)
If Not cell Is Nothing Then
MsgBox "Wert in Zelle gefunden " & cell.Address
MsgBox "Wert nicht gefunden"
In diesem Beispiel sucht die Funktion Find nach der ersten Übereinstimmung des Werts "apple" im Zellbereich A1:D10, wobei nur die Werte berücksichtigt werden. Wenn eine Übereinstimmung gefunden wird, wird eine Nachricht mit der Adresse der Zelle angezeigt, in der sie gefunden wurde. Andernfalls wird eine Meldung angezeigt, dass der Wert nicht gefunden wurde.
Nachdem Sie das Beispiel und die Parameter der Find-Funktion gelesen haben, können Sie diese Funktion erfolgreich in Ihren VBA-Excel-Projekten verwenden, um die gewünschten Werte oder den gewünschten Text in Zellbereichen zu finden.