Я пытаюсь использовать регулярное выражение в excel VBA для соответствия шаблону во всех ячейках диапазона столбцов и удалять сопоставленные шаблоны в новый диапазон столбцов.Регулярное выражение в excel VBA
E.g.
- Happy Day Care Club (1124734)
- Французский Pattiserie (8985D)
- короля буфетная (G6666642742D)
- Большой обуви (Китай) Ltd (ZZ454)
По существу я хотите удалить последнюю заключенную в скобки часть каждой строки и перенести эту часть (без скобок) в другой диапазон столбцов.
Регулярное выражение у меня до сих пор "(([^)] +)) \ г" (я не знаю, если это на самом деле правильно), и встроенный в этом 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 * (\ ((. *?) \)) $' Regex, если в круглых скобках есть '(' или ')'. –