Können Sie reguläre Ausdrücke in Excel ohne VBScript ausführen?

22

Ich suche nach einer Excel-Funktion, die ich in eine Zelle einfügen kann, um eine reguläre Suche des Inhalts einer anderen Zelle durchzuführen. Gibt es dafür etwas? Ich würde es vorziehen, nicht VB Script zur Tabelle hinzufügen zu müssen, da ich eine Lösung schneller fest programmieren kann. Es ist nur so, dass die schnellste Lösung eine Funktion wäre. Ich kann aber keinen finden. Vielleicht gibt es nichts.

Weiß jemand?

Erick Robertson
quelle

Antworten:

12

Sie können einfach einen Verweis auf "Microsoft VBScript Regular Expressions 5.5" in der VBE hinzufügen, um die Regex-Funktionen von VBScript.dll für Excel verfügbar zu machen. Das Schreiben einer einfachen Regex-Funktion ist dann trivial, z

Public Function emailCheck(rawEmail As String) As Boolean
    Dim reg As New RegExp
    reg.Pattern = "^[\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,4}$"
    emailCheck = False
    If reg.Test(rawEmail) Then
        emailCheck = True
    End If
End Function
Lunatik
quelle
Können Sie erklären, wie Sie eine Referenz hinzufügen?
Chris Walsh
7

Das .xla-Paket auf dieser Site hat für mich sehr gut funktioniert.

jdotjdot
quelle
Es funktioniert in der Tat großartig (ich benutze Excel 2013)
Sébastien
3

MoreFunc.xll ist ein kostenloses Add-In mit Regex-Funktionalität.

Es gibt einige andere Add-Ins von Drittanbietern, die auch Regex ausführen können.

Es gibt keine echten nativen Arbeitsblattfunktionen, aber wenn Sie eine bestimmte Suche durchführen müssen, können Sie wahrscheinlich andere Funktionen verwenden, um die Arbeit zu erledigen.

Lance Roberts
quelle
Danke für die Bestätigung. Ich habe diese Bibliothek gefunden, aber wir hatten gehofft, etwas zu haben, das uns nicht zwang, auch eine Bibliothek zu verteilen.
Erick Robertson
@Erick, yep, ich hasse es, meinen Tabellen Add-Ins hinzuzufügen, ein großer Schmerz, sie im Auge zu behalten. Wenn Sie keine vollständige Flexibilität für reguläre Ausdrücke benötigen, können Sie die Arbeit wahrscheinlich mit anderen Funktionen erledigen. Es gibt viele Tricks in Excel. Veröffentlichen Sie hier spezifische Anfragen.
Lance Roberts
2

Hier ist eine Funktion, die die Anzahl der Übereinstimmungen mit regulären Ausdrücken in einer bestimmten Zelle angibt:

Public Function regexCount(regex As String, ref As Range) As Integer
    Dim reg As New RegExp
    reg.Global = True
    reg.Pattern = regex
    regexCount = reg.Execute(ref.Value).Count
End Function

(Erfordert das Hinzufügen eines Verweises auf "Microsoft VBScript Regular Expressions 5.5" - gehen Sie einfach im VBA-Editor zu "Extras" -> "Verweise" und aktivieren Sie das Kontrollkästchen für diesen Verweis.)

jake
quelle