Есть макрос который извлекает текст из строки по разделителям "НОМЕР" и "," Затем макрос проходится по нескольким ячейкам, складируя найденное в одной ячейке. Но этот макрос может работать при условии, что текстовый диапазон "НОМЕР...," может встречаться только один раз. Если таких диапазонов больше - он просто выбирает первый попавшийся, а остальные не замечает.
[vba]
Код
Sub Макрос1 () Dim r As Range With CreateObject("VBScript.RegExp") .Global = True .IgnoreCase = True .Pattern = "НОМЕР(.+?)(?=,)" For Each r In [G190:G208] If .test(r) Then Range("J189") = Range("J189") & "-" & .Execute(r)(0).SubMatches(0) End If Next End With
[/vba]
Как научить макрос извлекать все куски текста, если текстовый диапазон "НОМЕР...," может встречается в каждой строке по нескольку раз ?
Добрый вечер. Подскажите с решением вопроса.
Есть макрос который извлекает текст из строки по разделителям "НОМЕР" и "," Затем макрос проходится по нескольким ячейкам, складируя найденное в одной ячейке. Но этот макрос может работать при условии, что текстовый диапазон "НОМЕР...," может встречаться только один раз. Если таких диапазонов больше - он просто выбирает первый попавшийся, а остальные не замечает.
[vba]
Код
Sub Макрос1 () Dim r As Range With CreateObject("VBScript.RegExp") .Global = True .IgnoreCase = True .Pattern = "НОМЕР(.+?)(?=,)" For Each r In [G190:G208] If .test(r) Then Range("J189") = Range("J189") & "-" & .Execute(r)(0).SubMatches(0) End If Next End With
[/vba]
Как научить макрос извлекать все куски текста, если текстовый диапазон "НОМЕР...," может встречается в каждой строке по нескольку раз ?Werwolfik
Добрый день. надо добавить цикл по всем совпадениям [vba]
Код
Sub Макрос1() Sheets("Лист3").Range("E7").ClearContents
Dim r As Range With CreateObject("VBScript.RegExp") .Global = True .IgnoreCase = True .Pattern = "НОМЕР(.+?)(?=,)" For Each r In [H9:H21] If .test(r) Then For x = 0 To .Execute(r).Count - 1 Range("E7") = Range("E7") & ",-" & .Execute(r)(x).SubMatches(0) Next x End If Next End With
End Sub
[/vba]
Добрый день. надо добавить цикл по всем совпадениям [vba]
Код
Sub Макрос1() Sheets("Лист3").Range("E7").ClearContents
Dim r As Range With CreateObject("VBScript.RegExp") .Global = True .IgnoreCase = True .Pattern = "НОМЕР(.+?)(?=,)" For Each r In [H9:H21] If .test(r) Then For x = 0 To .Execute(r).Count - 1 Range("E7") = Range("E7") & ",-" & .Execute(r)(x).SubMatches(0) Next x End If Next End With