Здравствуйте уважаемые жители форума. Прошу помощи, может у кого есть готовое решение?! на Forms.TextBox. 1. ПОИСК/автофильтр с одним условием на несколько столбцов (с возможностью поиска типа текст*, текст?, чтобы искать примерное совпадение тоже) 2. подсветкой ячейки с заданным условием. В примере файл: есть столбец "Фрукты А1", "Фрукты А2", Фрукты Б1, Фрукты Б2. Задаем поиск в текстбоксе и происходит автофильтрация данных. Фильтр получается срабатывает по условию, что текст есть хотябы в одной ячейке каждой строки. И подсвечивается ячейка, где был найден данный текст.
На форумах нашел поиск и выделение необходимых слов. это так: Sub Find_n_Highlight() On Error Resume Next: Err.Clear Dim ra As Range, cell As Range, res, txt$, v, pos& res = InputBox("Введите текст, который необходимо подсветить в таблице", "Поиск и подсветка текста", "диз") If VarType(res) = vbBoolean Then Exit Sub ' нажата кнопка ОТМЕНА txt$ = Trim(res): If Len(txt) = 0 Then Exit Sub ' текст не введен, или состоит из пробелов
Set ra = Range([A2], Range("A" & Rows.Count).End(xlUp)) ' диапазон для поиска Application.ScreenUpdating = False ra.Font.Color = 0: ra.Font.Bold = 0 ' сброс цветового выделения
For Each cell In ra.Cells ' перебираем все ячейки pos = 1 If cell.Text Like "*" & txt & "*" Then arr = Split(cell.Text, txt, , vbTextCompare) ' разбивает текст ячейки на части If UBound(arr) > 0 Then ' если подстрока найдена For Each v In arr ' перебираем все вхождения pos = pos + Len(v) ' начальная позиция With cell.Characters(pos, Len(txt)) .Font.ColorIndex = 3 ' выделяем цветом .Font.Bold = True ' и полужирным начертанием End With pos = pos + Len(txt) Next v End If End If Next cell End Sub
Но мне нужно выделение не текта, а самой ячейки.
Здравствуйте уважаемые жители форума. Прошу помощи, может у кого есть готовое решение?! на Forms.TextBox. 1. ПОИСК/автофильтр с одним условием на несколько столбцов (с возможностью поиска типа текст*, текст?, чтобы искать примерное совпадение тоже) 2. подсветкой ячейки с заданным условием. В примере файл: есть столбец "Фрукты А1", "Фрукты А2", Фрукты Б1, Фрукты Б2. Задаем поиск в текстбоксе и происходит автофильтрация данных. Фильтр получается срабатывает по условию, что текст есть хотябы в одной ячейке каждой строки. И подсвечивается ячейка, где был найден данный текст.
На форумах нашел поиск и выделение необходимых слов. это так: Sub Find_n_Highlight() On Error Resume Next: Err.Clear Dim ra As Range, cell As Range, res, txt$, v, pos& res = InputBox("Введите текст, который необходимо подсветить в таблице", "Поиск и подсветка текста", "диз") If VarType(res) = vbBoolean Then Exit Sub ' нажата кнопка ОТМЕНА txt$ = Trim(res): If Len(txt) = 0 Then Exit Sub ' текст не введен, или состоит из пробелов
Set ra = Range([A2], Range("A" & Rows.Count).End(xlUp)) ' диапазон для поиска Application.ScreenUpdating = False ra.Font.Color = 0: ra.Font.Bold = 0 ' сброс цветового выделения
For Each cell In ra.Cells ' перебираем все ячейки pos = 1 If cell.Text Like "*" & txt & "*" Then arr = Split(cell.Text, txt, , vbTextCompare) ' разбивает текст ячейки на части If UBound(arr) > 0 Then ' если подстрока найдена For Each v In arr ' перебираем все вхождения pos = pos + Len(v) ' начальная позиция With cell.Characters(pos, Len(txt)) .Font.ColorIndex = 3 ' выделяем цветом .Font.Bold = True ' и полужирным начертанием End With pos = pos + Len(txt) Next v End If End If Next cell End Sub
Но мне нужно выделение не текта, а самой ячейки.UpFRONT