Макрос поиска совпадений в тексте - VBA

Узнай цену своей работы

Формулировка задачи:

Всем доброго времени суток! Пишу с просьбой помочь написать макрос для поиска совпадений в ячейках из списка. Пример во вложении. Нужно, чтобы макрос проверял ячейку А1 на литсе 1, искал совпадений из списка на листе 2 и в ячейку B1 листа 1 вставлял значения ячейки B1 листа 2. Есть еще пару нюансов, т.к. файл будет вестись в течении года, возможно ли сделать так, чтобы макрос выполнялся не по нажатию кнопок каких-либо, а постоянно? Я представляю сколько он в таком случае будет думать, т.к. к к концу года там накапливается порядка 5-6 тысяч строк, в связи с этим возникает еще один вопрос, возможно ли сделать так: после того как мы внесли значение A1 на листе 1, и макрос проставил нужное значение в B1, то в следующий раз при открытии файла, он больше не трогал ячейку А1, и начинал выполняться только когда допустим в A2 мы внесли значение и так далее. Так сказать разовая процедура... Заранее большое спасибо!

Решение задачи: «Макрос поиска совпадений в тексте»

textual
Листинг программы
Private Sub Worksheet_Change(ByVal Target As Range)
Dim arr(), i%
Application.EnableEvents = False 'отключает слежение за событиями
If Target.Count > 1 Then Exit Sub 'если изменено больше 1 ячейки то выход из кода
If Target.Column <> 1 Then Exit Sub 'если измененная ячейка в первом столбце то
arr = Sheets("Лист2").Range("A1:B100").Value 'заносим данные из диапазона A1:B100 листа2 в двумерный массив
For i = 1 To UBound(arr) 'цикл от 1 до 100 (100 размерность массива)
' если в тексте содержится текст из итого значения массива то в ячейку правее на 1 от измененной вносит значение
' итого массива второго столбца
 If UCase(Target.Value) Like "*" & UCase(arr(i, 1)) & "*" Then Target.Offset(0, 1).Value = arr(i, 2): Exit For
Next
Application.EnableEvents = True 'включаем слежение за событиями
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.333 из 5
Похожие ответы