2016-04-15 15 views
3

Ich habe einige Regex-Kenntnisse von der Verwendung von JavaScript, aber jetzt möchte ich es in Excel und VBA verwenden und ich habe einige Probleme bekommen es funktioniert.VBA + RegEx + Range.Replace

Ich möchte >abc durch <br>> abc ersetzen.

In JavaScript verwende ich >([a-zA-Z0-9]) und <br>> $1, aber hier weiß ich nicht, wie es geht.

Auch ich will es mit Range.Replace Funktion nutzen, wie:

oRange.Replace What:=">abc", Replacement:="<br>> abc", MatchCase:=False 

Jede Hilfe wird geschätzt.

+0

Sie meinen '> ([a-zA-Z0-9] +)'? – rock321987

+1

[Hier ist eine ziemlich gute] (http://stackoverflow.com/questions/22542834/how-to-use-regular-expressions-regex-in-microsoft-excel-both-in-cell-and-loops) Thread auf VBA und ReGex, von denen ich denke, dass es hilfreich wäre, sie durchzulesen. – BruceWayne

+1

'Range.Replace' unterstützt keine Regex-basierte Ersetzung. Warum nicht einfach '>' durch '' SPACE' ersetzen? –

Antwort

-1

Vielleicht so etwas wie diese Routine. Dies wird einen bestimmten Bereich mit dem Muster suchen und den Inhalt ersetzen ...

Hoffe, dass hilft.

Public Sub RegExMatchAndReplace(ByVal Pattern As String, ByVal Data As Range, ByVal Replace As String) 


Dim oRegEx As New RegExp 
Dim rPtr As Range 

For Each rPtr In Data 
    With oRegEx 
     .Global = True 
     .MultiLine = True 
     .IgnoreCase = True 
     .Pattern = Pattern 
     rPtr.Value = oRegEx.Replace(rPtr.Value, Replace) 
    End With 
Next 

End Sub 
+0

BTW, erfordert dies einen Verweis auf die Reg Expressions-Bibliothek. – PaulG