Не выделяются ячейки VBA Excel

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

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

Всем привет, есть книга Excel, в книге может быть не определенное кол-во листов, необходимо на всех листах сделать поиск определенного слова и после его нахождения, получить значения соседних ячеек.
Что имеет, емеем следующий код

Данный код нормально ищет и находит все ячейки со значением WPID, но вот это ActiveCell.Offset(0, 1).Font.Color = RGB(0, 0, 0) выполняется только для первого листа.
Почему?
Спасибо.

Решение задачи: «Не выделяются ячейки VBA Excel»

textual
Листинг программы
<font color="blue">Sub</font> Search_In_All_Sheets()
    <font color="blue">Dim</font> FirstAddress <font color="blue">As</font> <font color="blue">String</font>
    <font color="blue">Dim</font> Rng <font color="blue">As</font> Range
    <font color="blue">Dim</font> sh <font color="blue">As</font> Worksheet
    
    <font color="blue">On</font> <font color="blue">Error</font> <font color="blue">Resume</font> <font color="blue">Next</font>
   
    <font color="blue">For</font> <font color="blue">Each</font> sh <font color="blue">In</font> ActiveWorkbook.Worksheets
        <font color="blue">With</font> sh.Cells
                <font color="blue">Set</font> Rng = .Find(What:=<font color="teal">"WPID"</font>, _
                                LookIn:=xlFormulas, _
                                LookAt:=xlWhole, _
                                MatchCase:=False)
<font color="00AA00">'''Лишние аргументы</font>
<font color="00AA00">'''                                SearchOrder:=xlByRows, _</font>
<font color="00AA00">'''                                SearchDirection:=xlNext, _</font>
<font color="00AA00">'''                                After:=.Cells(.Cells.Count), _</font>

                <font color="blue">If</font> <font color="blue">Not</font> Rng <font color="blue">Is</font> <font color="blue">Nothing</font> <font color="blue">Then</font>
                    FirstAddress = Rng.Address
                    <font color="blue">Do</font>
                        Rng.Font.Color = RGB(<font color="darkblue"><b>150</b></font>, <font color="darkblue"><b>0</b></font>, <font color="darkblue"><b>0</b></font>)
<font color="00AA00">'''                        Rng.Select 'Лишнее</font>
<font color="00AA00">'''                        ActiveCell.Offset(0, 1).Font.Color = RGB(0, 0, 0)</font>
Rng.Offset(<font color="darkblue"><b>0</b></font>, <font color="darkblue"><b>1</b></font>).Font.Color = RGB(<font color="darkblue"><b>0</b></font>, <font color="darkblue"><b>0</b></font>, <font color="darkblue"><b>0</b></font>)
<font color="00AA00">'''Переменная не описана и не используется</font>
<font color="00AA00">'''                        wpid = ActiveCell.Offset(0, 1).Value </font>
<font color="00AA00">'''                        wpid = Rng.Offset(0, 1).Value </font>
                        <font color="00AA00">'MsgBox wpid</font>
                        <font color="blue">Set</font> Rng = .FindNext(Rng)
<font color="00AA00">'''Rng can't be Nothing</font>
<font color="00AA00">'''                  Loop While Not Rng Is Nothing And Rng.Address <> FirstAddress </font>
<font color="blue">Loop</font> <font color="blue">Until</font> Rng.Address = FirstAddress
                <font color="blue">End</font> <font color="blue">If</font>
        <font color="blue">End</font> <font color="blue">With</font>
    <font color="blue">Next</font> sh
<font color="blue">End</font> <font color="blue">Sub</font>

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


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

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

13   голосов , оценка 3.923 из 5