it-swarm.com.de

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

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, kein VB-Skript 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?

22
Erick Robertson

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
12
Lunatik

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

7
jdotjdot

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.

3
Lance Roberts

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.)

2
jake