Saltar al contenido

So geben Sie alle Übereinstimmungen eines eingegebenen Texts mit einem Muster eines regulären Ausdrucks in Excel zurück (Beispiel)

6 de agosto de 2021

Unter den vielen Funktionen, die durch die Codierung von Makros in Excel erreicht werden können, gibt es die Möglichkeit, alle Übereinstimmungen eines Textes solange diese in den Parametern eingestellt sind.

Der Betrieb von «Ausführen”Der Ausdruck, der verwendet wird, um alle Musterübereinstimmungen zurückzugeben, die sich in der in Visual Basic erstellten Suchzeichenfolge befinden.

Dank Visual Basic können Sie sich die Arbeit in Excel erleichtern, da Sie mit diesem Programm Makros und benutzerdefinierte Funktionen erstellen können. Mit denselben Makros können Sie Dateinamen importieren oder Daten von einem Blatt in ein anderes kopieren.

Welche Funktion hat das Muster für reguläre Ausdrücke, das dafür sorgt, dass alle Übereinstimmungen eines Textes zurückgegeben werden?

Der erste Schritt ist Regex-Objekt erstellen als Funktion namens «Streichhölzer» in dem mittels Parameter ein Wert in der Zelle gefunden wird, in die die Person geschrieben hat.

Das Ziel durch einen Makrocode, Dies wird eine Nachricht mit den gefundenen Übereinstimmungen zurückgeben im Text durch eine Disjunktion getrennt.

Codierung zum Erstellen des Musters der Funktion

Es wurde eindeutig festgestellt, dass das als nächstes erstellte Muster für reguläre Ausdrücke eine Funktion ist, die für die Validierung von Texten zuständig ist, die in das Blatt eingegeben wurden.

Greife auf … zu «Entwickler«Und auf klicken»Visuelle Grundlagen«Um eine Premiere zu schaffen»Modul”Die den Code der Funktion enthält.

Sie beginnen mit der Einstellung des Funktionsstarts, gib ihm den Namen von Streichhölzern und in die Klammern müssen Sie die Wertparameter des in die Zelle eingegebenen Textes als String einfügen.

Öffentliche Funktion stimmt überein (ByVal-Zelle als String)

Sobald dies erledigt ist, können Sie mit dem Schreiben des regulären Ausdrucksobjekts beginnen, das das Parsing-Muster festlegt, und ihm einen beliebigen Namen (SS) geben.

Setze SS = CreateObject («VBScript.RegExp»)

Starten Sie eine Variable, die Sie als Text benennen, um alle Übereinstimmungen festzulegen, die wird beim Ausführen des Makros gefunden, die vom Typ string ist und bei 0 gestartet wird.

Text als String dimmen

Text = «»

Als nächstes legen Sie die Eigenschaften der Regex fest, wobei sie alle als wahr und Das Muster besteht aus den Buchstaben von a bis z, begleitet von dem Summensymbol «+”Um auch jeden anderen Text innerhalb der Zeichenfolge zu parsen.

Mit SS

.Global = Wahr

.Mehrzeilig = Wahr

.IgnoreCase = True

.Muster = «[a-z]+»

Ende mit

Wenn es eine Übereinstimmung innerhalb des Textes gibt, muss er mit extrahiert werden ausführen, oder es wird eine Meldung angezeigt, dass nichts gefunden wurde.

Wenn Sie nach Inhalt suchen, müssen Sie eine Variable festlegen, die Sie als gefunden benennen, um den Wert der übereinstimmenden Zelle zu platzieren.

Beachten Sie, dass jede gefundene Übereinstimmung mit einer bestimmten Hilfsvariablen in diesem Beispiel als «x«in einer Struktur»Für jedes“.

Wenn SS.test (Zelle) Dann

Satz gefunden = SS.Execute (Zelle)

Für jedes gefundene x In

Aux = x

Wenn Text = ”” Dann

Text = aux

Anders

Text = Text + ”| «+ Aux

Ende Wenn

Nächstes x

Schließlich weist es zu, dass der Wert des Objekts des regulären Ausdrucks der Text ist, der in die Zelle eingegeben wird, oder erstellt die Nachricht, wenn keine Übereinstimmungen gefunden werden, um die Funktion zu beenden.

grünes Excel-Symbol

Übereinstimmungen = Text

Anders

Übereinstimmungen = ”Keine Übereinstimmungen gefunden”

Ende Wenn

Endfunktion

Ergebniscode

Um alle Übereinstimmungen eines Textes zurückzugeben, wird ein neues «Modul„Um einen Code zu erstellen, der das Ergebnis der Analyse des Zellinhalts anzeigt und nach dem zuvor erstellten Muster arbeitet.

Dazu wird hinzugefügt zwei Variablen namens value und string vom Typ string denen die Werte der Funktion zugewiesen werden.

Unterspiele ()

Dim-Wert, String als String

Wert = ActiveCell.Value

Zeichenfolge = Übereinstimmungen (Wert)

MsgBox-Zeichenfolge

End Sub

Damit sind die Funktion und das Makro fertig, das Sie testen können, indem Sie einer Zelle mit unterschiedlichen Symbolen Inhalt hinzufügen und auf das «Makros» drücken «Laufen„Über die Funktion.

Am Ende erscheint ein Fenster mit den Übereinstimmungen, die innerhalb der festgelegten Parameter liegen, getrennt durch das Disjunktionssymbol.

Wenn Sie mit diesem Programm arbeiten, können irgendwann Fehler auftreten, die jedoch leicht zu beheben sind.