Das Erlernen der Textsuche mit der Excel-Programmiersprache VBA (Visual Basic for Applications) ist in vielen Situationen nützlich, z. B. in den folgenden. Jemand gibt eine Liste von Postadressen ein, aber nur einige der Adressen sind gültig. Ein anderer Teil des Notizbuchs enthält die gültigen Adressen. Mit dem VBA-Befehl "Find" kann der Benutzer bei der Eingabe einer Adresse nach diesen Daten suchen. Wenn "Find" die Adresse in der Liste nicht findet, kann Ihr VBA-Programm den Schreibenden auf eine ungültige Adresse hinweisen. VBA-Zugriff über die Registerkarte Excel-Entwickler. Wenn diese Registerkarte nicht angezeigt wird, müssen Sie möglicherweise die Excel-Optionen überprüfen, um den Bildschirm einzuschalten. Makro
Ein einfacher Weg, um zu verstehen, wie man Text mit VBA findet, ist die Verwendung des Makro-Recorders von Excel, um VBA-Anweisungen aus der Verwendung des Befehls "Suchen" auf der Registerkarte "Start" zu erstellen. Geben Sie Text in eine Arbeitsblattzelle ein, z. B. "abc", und klicken Sie dann auf eine beliebige andere Zelle. Klicken Sie auf der Registerkarte "Entwickler" auf die Schaltfläche "Speichern" und drücken Sie dann die Taste "Strg". und drücken Sie dann gleichzeitig die "Control"-Taste und die "F"-Taste, um das Dialogfeld "Programm suchen" aufzurufen. Geben Sie einige Zeichen des Textes, den Sie eingegeben haben, in die Zelle ein. Klicken Sie auf "Suchen", um auf die Zelle zuzugreifen, und klicken Sie dann auf die Schaltfläche "Aufzeichnung stoppen" in der Registerkarte "Entwickler", um die Makroaufzeichnung zu beenden.
Wenn Sie ein VBA-Makro für die Textsuche aufgezeichnet haben, lesen Sie zunächst die Programmieranweisungen, um zu verstehen, wie es funktioniert. Zeigen Sie die Liste der Makros in Ihrer aktuellen Arbeitsmappe an, indem Sie auf die Schaltfläche "Makros" auf der Registerkarte "Entwickler" klicken. und klicken Sie dann auf den Namen Ihres Textsuchmakros. Klicken Sie zum Beispiel auf "TextFinder", wenn dies der Name Ihres Makros ist, und klicken Sie dann auf die Schaltfläche "Bearbeiten", um die VBA-Programmieranweisungen für "TextFinder" anzuzeigen.
Die Funktion "Suchen"
Fotos
VBA sucht mit der Funktion "Suchen" , die zur Sammlung "Zellen" gehört, nach Text in den Zellen des aktuellen Arbeitsblatts. Diese Sammlung enthält die Zellen des aktuellen Arbeitsblatts. Sie können sich ein gutes Bild von den Argumenten machen, die diese Funktion benötigt, indem Sie die Anweisungen eines Makros untersuchen, das nach Text sucht. Wenn Sie ein Makro aufgezeichnet haben, das nach dem Text "abc" sucht, sieht Ihr Makro etwa wie folgt aus:
Unter FindText ()
Cells.Find (What: = "abc" , After: = ActiveCell , LookIn: = xlFormulas , LookAt: = _
xlPart , SearchOrder: = xlByRows , SearchDirection: = xlNext , MatchCase: = False _
, SearchFormat: = False ) . Activate
End Sub
Das Argument "what" des VBA-Befehls "Find", der nach Text sucht, enthält den Text, nach dem Sie suchen wollen. Excel sucht nach jedem Text, den Sie für dieses Argument angeben. "Was" ist das einzige Argument, das der Befehl "Suchen" benötigt. Alle anderen Argumente sind optional. So können Sie z.B. mit der Anweisung "Cells.Find (What: = "abc" ) nach dem Text "abc" suchen. Wenn Sie die Suche nach einer bestimmten Groß-/Kleinschreibung im "Was-Text" aktivieren möchten, geben Sie dies an, indem Sie das Argument "MatchCase" auf "true" setzen. Dieses Argument ist standardmäßig "False".
Rückgabewert und Navigation
Der "Find"-Befehl für die Textsuche mit VBA navigiert nicht automatisch zu allen Zellen, die den gesuchten Text enthalten. Um dies zu erreichen, verwenden Sie die "Enable"-Methode des "Find"-Rückgabewerts. Dieser Rückgabewert ist ein "Range"-Objekt, das die Zellen darstellt, in denen "Find" den gesuchten Text gefunden hat. Wenn Sie beispielsweise mit "Find" nach "abc" gesucht haben und nur eine Zelle diesen Text enthielt, wäre der Rückgabewert von "Find" ein einzelner Zellbereich. Wenn Sie die Funktion "Aktivieren" dieser Zelle ausführen, wird diese Zelle zur aktiven Zelle.