Страницы: 1
RSS
Макрос поиска и закраски ячейки
 
Всем здравствуйте!!!!
Подскажите пожалуйста, что поменять в коде, чтобы закрышивались не одно совпадения а все найденные на листе ячейки????
Заранее спасибо
Код
Sub Выделение_цветом_машин_для_сводки()
Dim rFndRng As Range, x
  For Each x In Array("VOLVO В 210 СС 73", "10", "50", "95", "5", "143", "660", "470")
    Set rFndRng = Cells.Find(x, , xlValues, xlWhole)
    If Not rFndRng Is Nothing Then rFndRng.Interior.Color = vbRed
  Next
End Sub
 
Ну значит нет больше совпадений. Какие значения Вы ищите в этом цикле?
Согласие есть продукт при полном непротивлении сторон
 
к примеру все значения VOLVO В 210 СС 73
 
добавляем в код эту функцию
http://excelvba.ru/code/FindAll

и допиливаем ваш макрос:

Код
Sub Выделение_цветом_машин_для_сводки_NEW()
   On Error Resume Next: Dim x
  For Each x In Array("VOLVO В 210 СС 73", "10", "50", "95", "5", "143", "660", "470")
    FindAll(cells, x, xlValues, xlWhole).Interior.Color = vbRed
  Next
End Sub
 
Лучше бы файл-пример приложили. Давно бы уже ответ получили (о! стих получился  :sceptic: )
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Цитата
Иван Иванов написал: VOLVO В 210 СС 73
Это понятно. Дальше какие? У меня Ваш макрос работает на ура
Согласие есть продукт при полном непротивлении сторон
 
Вообще код перебора всех найденных приведен даже в справке для метода Find. Можно прямо полностью оттуда взять да вставить...
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
чтобы закрышивались не одно совпадения а все найденные на листе ячейки
Для начала надо сбросить цветовое окрашивание на листе.
А затем применить метод FindNext
 
Почему то ругаеться на FindAll???
Код
Sub Выделение_цветом_машин_для_сводки_NEW()
   On Error Resume Next: Dim x
  For Each x In Array("VOLVO В 210 СС 73", "10", "50", "95", "5", "143", "660", "470")
    FindAll(cells, x, xlValues, xlWhole).Interior.Color = vbRed
  Next
End Sub
 
А функцию FindAll вы скачали в стандартный модуль?
 
Kuzmich,а как ее скачивать в в стандартный модуль???
я просто код поставил в модуль книги
 
Иван Иванов, да Ваш макрос тоже рабочий. Покажите уже файл-пример
Согласие есть продукт при полном непротивлении сторон
 
Я бы использовал FindNext, посмотрите в справке
 
вот пример
 
Код
Sub Выделение_цветом_машин_для_сводки()
Dim rFndRng As Range, x
Dim FAdr As String
     UsedRange.Interior.ColorIndex = xlNone
  For Each x In Array("VOLVO В 210 СС 73", "10", "50", "95", "5", "143", "660", "470")
    Set rFndRng = UsedRange.Find(x, , xlValues, xlWhole)
    If Not rFndRng Is Nothing Then
      FAdr = rFndRng.Address
      Do
        rFndRng.Interior.Color = vbRed
        Set rFndRng = UsedRange.FindNext(rFndRng)
      Loop While rFndRng.Address <> FAdr
    End If
  Next
End Sub
 
Kuzmich, прав. Я думал, что там нечто другое.  
Согласие есть продукт при полном непротивлении сторон
 
Kuzmich, ошибка 424, Object required???? Что то надо установить мне????
 
Макрос в модуль листа "2016"
 
Kuzmich,а можно чтобы не в модуль листа???, просто файлик присылают и каждый раз его копировать в лист не удобно
 
Можно в стандартный модуль(только свой макрос удалите), но запускать его надо с листа 2016
Код
Sub Выделение_цветом_машин_для_сводки()
Dim rFndRng As Range, x
Dim FAdr As String
     Worksheets("2016").UsedRange.Interior.ColorIndex = xlNone
  For Each x In Array("VOLVO В 210 СС 73", "10", "50", "95", "5", "143", "660", "470")
    Set rFndRng = Worksheets("2016").UsedRange.Find(x, , xlValues, xlWhole)
    If Not rFndRng Is Nothing Then
      FAdr = rFndRng.Address
      Do
        rFndRng.Interior.Color = vbRed
        Set rFndRng = Worksheets("2016").UsedRange.FindNext(rFndRng)
      Loop While rFndRng.Address <> FAdr
    End If
  Next
End Sub
Изменено: Kuzmich - 11.01.2016 17:30:26
 
Kuzmich,ставлю в модуль этой книги, но при запуске ошибка 424, Object required?, может я что то не так делаю??????
 
Нужно указывать лист, посмотрите код, я поправил.
 
Kuzmich,спасибо, все как всегда,четко
Страницы: 1
Читают тему
Наверх