Страницы: 1
RSS
Выделить часть текста из ячейки эксель с повторяющимся признаком, Прошу помощи с выделением части текста из ячейки excel
 
Доброго времени суток, у меня есть файл в котором содержаться ячейки с текстовым содержанием, в тексте есть коды, которые мне необходимо вытащить, либо в одну ячейку, либо как вариант в 2,3 или более по количеству повторений кода, коды, к сожалению, состоят из цифр и букв, их объединяет только первые 5 букв, дальше как карта ляжет (но знаков в большинстве случаев 13), и все бы ничего только в тексте может встречаться 2-3 кода, а первая часть так же участвует в тексте(( я как ни крутил функцию "поиск" и "подобрать" у меня не вышло вытащить все значения. пример текста в ячейке ниже. (текст ниже это текст одной ячейки), жирным выделил, то, что необходимо вытащить.


буду признателен за помощь, если есть возможность решить без макросов, было бы проще, ибо мне это еще бухгалтерам надо будет объяснять )))))

PS если это есть на форуме, то за ранее сори, я честно полчаса искал ответ :D

To: party GROUP Invoice No.: party-1324А455-CX
Attn: Marina Issued Date: 2008/5/11
Information of Service
Type of Service Pre-shipment Inspection
+
To: PARTY GROUP Invoice No.: Party32158123-BL
Attn: Elena Issued Date: 2008/5/22
Information of Service
Product Hair clipper and Callous Remover
Изменено: TheOddShad - 16.04.2018 15:38:25
 
пример в виде файла эксель, ячеек на 10 с различными вариациями вашего текста
Лень двигатель прогресса, доказано!!!
 
за полчаса честных поисков по сайту Вам не попадались фразы, что желательно к сообщению прикладывать файл с данными?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Файл приложил к сообщению, проблема в том что мне вручную приходится менять всё содержание, так как исходные данные в интернет я выкладывать не могу.
 
Для приведенного примера макрос
Код
Sub iNomer()
Dim mo As Object
Dim n As Integer
Dim i As Long
Dim j As Integer
Dim iLastRow As Long
  iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
 With CreateObject("VBScript.RegExp")
   .Global = True
   .IgnoreCase = True
   .MultiLine = True
   .Pattern = "\d{8}-[A-Z]{2}"
  For i = 1 To iLastRow
     If .test(Cells(i, 1)) Then
       Set mo = .Execute(Cells(i, 1))
           j = 2
         For n = 0 To mo.Count - 1
           Cells(i, j) = mo(n)
           j = j + 1
         Next
    End If
  Next
 End With
End Sub
 
Спасибо огромное, работает. :)  
 
Цитата
Kuzmich написал:
Для приведенного примера макрос
Цитата
TheOddShad написал:
1324А455-CX
TheOddShad, так вы определитесь - могут ли у вас буквы присутствовать в левой части "артикула" или нет… Вариант от Kuzmich'а, абсолютно корректен для вашего файла-примера, однако пропустит шифры с буквами.
Изменено: Jack Famous - 17.04.2018 10:34:41
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, написал
Цитата
однако пропустит шифры с буквами
Измените паттерн
Код
.Pattern = "[0-9A-Z]{8}-[A-Z]{2}"
Страницы: 1
Наверх