我正在尝试在Excel VBA中使用正则表达式来匹配列范围内所有单元格中的模式,并将匹配的模式移动到新的列范围中。
例如:
1. Happy Day Care Club (1124734) 2. French Pattiserie (8985D) 3. The King's Pantry (G6666642742D) 4. Big Shoe (China) Ltd (ZZ454)
基本上,我想要删除每个字符串的最后一个括号内的部分,并将此部分(不带括号)转置到不同的列范围中。
我目前有的正则表达式是"(([^)]+))\z"(我不知道这是否正确),并嵌入了以下VBA代码中:
例如:
1. Happy Day Care Club (1124734) 2. French Pattiserie (8985D) 3. The King's Pantry (G6666642742D) 4. Big Shoe (China) Ltd (ZZ454)
基本上,我想要删除每个字符串的最后一个括号内的部分,并将此部分(不带括号)转置到不同的列范围中。
我目前有的正则表达式是"(([^)]+))\z"(我不知道这是否正确),并嵌入了以下VBA代码中:
Dim regEx As New RegExp
Dim strPattern As String
Dim strInput As String
Dim strReplace As String
Dim Myrange As Range
Sheets("Sheet 1").Activate
Range("FF65536").End(xlUp).Select
LastCell = ActiveCell.Address
Set Myrange = ActiveSheet.Range("FF2:" & LastCell)
For Each C In Myrange
strPattern = "(\(([^\)]+)\)\z)"
If strPattern <> "" Then
strInput = C.Value
strReplace = "$1"
With regEx
.Global = True
.MultiLine = True
.IgnoreCase = False
.Pattern = strPattern
End With
If regEx.Test(strInput) Then
Range("FF2").Select = regEx.Replace(strInput, "$1")
Range("DX2").Select = regEx.Replace(strInput, "$2")
End If
End If
Next
我是新手,请原谅我可能出现的明显错误。
非常感谢!
(
或)
,您也可以使用\s*(\((.*?)\))$
正则表达式。 - Wiktor Stribiżew