Страницы: 1
RSS
Поиск слов по маске без учета регистра и запись рядом соответствующего слова
 
Добрый день Всем!
прошу Вас помочь!
нужен макрос который мог поискать несколько слов в столбце А и ставил соответствующее слова  рядом в столбец В
пример во вложении.
задача макроса искать название города в А и рядом в В ставить соответствующее название города.
заранее благодарю!
 
Цитата
нужен макрос который мог поискать несколько слов в столбце А
И где эти несколько слов?
 
Без дополнительного справочника городов не обойтись.
А затем уже по совпадению выдавать именно так, как разнесено в справочнике.
Изменено: Marat Ta - 01.05.2021 19:10:55
 
Во вложении
 
azma, выше уже рабочий файл. Справочник корректируйте и дополняйте сами.
Функция простая и понятная.

А вот название темы... Поиск нескольких слов - каких?
Изменено: Marat Ta - 01.05.2021 17:20:41
 
Цитата
Marat Ta написал:
А вот название темы... Поиск нескольких слов - каких?
Может подойдет - поиск по маске без учета регистра
 
Добавлю, что функция скопирована с темы
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=137530&a...
 
Цитата
задача макроса искать название города в А
А если в ячейке столбца А будет два города?
 
нет, в моих данных таких нету.
Но, есть проблема небольшая, иногда название является частью названия клиента и макрос ставить рядом название города, например:
Абайфарм ........  ставить рядом Абай

и такой ещё бывает, не правильно определяет:
Абайфарм ТОО г.Актобе  ........ ставить рядом Абай а должно быть Актобе
 
Если 2 города - выделил формулу зеленым фоном.

Абайфарм уже не ставит рядом Абай ....
Цитата
Абайфарм ........  ставить рядом Абай
Изменено: Marat Ta - 02.05.2021 09:32:50
 
Спасибо большое!!!
 
Marat Ta, написал
Цитата
Если 2 города - выделил формулу зеленым фоном.
Я имел в виду, что если в ячейке встречается два города, то и выделять нужно два
Актау Фарм г.Актобе
 
Цитата
Kuzmich написал:
Я имел в виду, что если в ячейке встречается два города, то и выделять нужно дваАктау Фарм г.Актобе
да, понял Вас есть такие конечно:(
Ада Фарм Актау (Астана)
АДА Фарм-Актау ТОО (Астана)
Ада Фарм Актау Астана
АДА ФармАктау ТОО Астана

функция От Marat Ta   в   #10  вставля́ет Актау к сожалению, а должно быть Астана.

Kuzmich, есть у Вас решение?
Изменено: azma - 02.05.2021 18:51:07
 
azma,
Устроит вас решение с подсветкой городов другим цветом  в ячейках столбца А ?
 
Решение с подсветкой городов другим цветом  устроит
 
azma,
Пробуйте
Код
Sub ColorTown()
Dim i As Long
Dim j As Integer
Dim iCell As Range
Dim re As Object
Dim oMatches As Object
Dim oMatch As Object
Dim Towns()
  Application.ScreenUpdating = False
  Towns = Range("H2", Cells(Rows.Count, "H").End(xlUp)).Value
  Columns("A").Font.Color = vbBlack
    Range("B2", Cells(Rows.Count, "B").End(xlUp)).Clear
  Set re = CreateObject("VBScript.RegExp")
    re.Global = True
    re.IgnoreCase = True
    re.Pattern = Join(WorksheetFunction.Transpose(Towns), "|")
  For Each iCell In Range("A2", Cells(Rows.Count, "A").End(xlUp))
    Set oMatches = re.Execute(iCell)
      For j = 0 To oMatches.Count - 1
         Set oMatch = oMatches.Item(j)
         With iCell.Characters(Start:=oMatch.FirstIndex + 1, Length:=oMatch.Length).Font
           .Color = vbBlue
         End With
      Next
  Next
  Application.ScreenUpdating = True
End Sub
 
Отлично работает, а можно без учета регистра?
 
azma,
Так макрос работает без учета регистра
Код
re.IgnoreCase = True
 
вот с этим не работает:
АКТАУ, ТОО "A-Constraction"
АКТАУ, ТОО "Actapharmaceutica"
АКТАУ, ИП "AgtauMed"
АКТАУ, ТОО "AKKU PHARM"
Изменено: azma - 02.05.2021 21:54:27
 
azma,
Массив городов в макросе берется с ячейки H2, а у вас слово Актау в ячейке H1
Код
Towns = Range("H2", Cells(Rows.Count, "H").End(xlUp)).Value
 
Спасибо большое!
 
Вообще то в инете есть уже такой справочник и города в столбце рядом.
Но ТС хочется составить свой из 2 городов ...)
Изменено: Marat Ta - 03.05.2021 10:36:33
Страницы: 1
Наверх