Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Извлечение текста из текстовых строк - из нескольких мест - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Извлечение текста из текстовых строк - из нескольких мест (Формулы/Formulas)
Извлечение текста из текстовых строк - из нескольких мест
Werwolfik Дата: Пятница, 04.05.2018, 00:09 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый вечер.
Подскажите с решением вопроса.

Есть макрос который извлекает текст из строки по разделителям "НОМЕР" и ","
Затем макрос проходится по нескольким ячейкам, складируя найденное в одной ячейке.
Но этот макрос может работать при условии, что текстовый диапазон "НОМЕР...," может встречаться только один раз.
Если таких диапазонов больше - он просто выбирает первый попавшийся, а остальные не замечает.

[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]

Как научить макрос извлекать все куски текста, если текстовый диапазон "НОМЕР...," может встречается в каждой строке по нескольку раз ?
К сообщению приложен файл: 5299745.xls(43.5 Kb)


Сообщение отредактировал Werwolfik - Пятница, 04.05.2018, 01:55
 
Ответить
СообщениеДобрый вечер.
Подскажите с решением вопроса.

Есть макрос который извлекает текст из строки по разделителям "НОМЕР" и ","
Затем макрос проходится по нескольким ячейкам, складируя найденное в одной ячейке.
Но этот макрос может работать при условии, что текстовый диапазон "НОМЕР...," может встречаться только один раз.
Если таких диапазонов больше - он просто выбирает первый попавшийся, а остальные не замечает.

[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
Дата добавления - 04.05.2018 в 00:09
sboy Дата: Пятница, 04.05.2018, 09:15 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1738
Репутация: 492 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
надо добавить цикл по всем совпадениям
[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]
К сообщению приложен файл: 3887482.xls(43.0 Kb)
 
Ответить
СообщениеДобрый день.
надо добавить цикл по всем совпадениям
[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]

Автор - sboy
Дата добавления - 04.05.2018 в 09:15
Werwolfik Дата: Пятница, 04.05.2018, 15:25 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
sboy, понял, спасибо.
 
Ответить
Сообщениеsboy, понял, спасибо.

Автор - Werwolfik
Дата добавления - 04.05.2018 в 15:25
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Извлечение текста из текстовых строк - из нескольких мест (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2018 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!