2016-04-15 71 views
3

我有一些使用JavaScript的正則表達式知識,但現在我想在Excel和VBA中使用它,並且在使用它時遇到了一些問題。VBA +正則表達式+範圍。更換

我想用<br>> abc替換>abc

在JavaScript中我使用>([a-zA-Z0-9])<br>> $1,但在這裏我不知道該怎麼做。

此外,我想與Range.Replace功能的使用,如:

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

任何幫助將不勝感激。

+0

you mean'>([a-zA-Z0-9] +)'? – rock321987

+1

[這是一個相當不錯的](http://stackoverflow.com/questions/22542834/how-to-use-regular-expressions-regex-in-microsoft-excel-both-in-cell-and-loops)thread on VBA和ReGex,我認爲這將有助於通讀。 – BruceWayne

+1

'Range.Replace'不支持基於正則表達式的替換。爲什麼不用''SPACE'替換'>'? –

回答

-1

也許像這樣的例程。 這將搜索指定的範圍與模式,並取代內容...

希望有所幫助。

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

順便說一下,這需要引用Reg表達式庫。 – PaulG