2

Работал над этим час, используя форумы без удачи.

  1. Хотите использовать этот код на любом именованном листе / книге
  2. Все книги настроены одинаково
  3. Хотите посмотреть на столбец A и посмотреть, есть ли значение "A", и посмотреть на столбец P, чтобы увидеть, есть ли число ноль
  4. Скрыть эту строку, если оба верны
  5. Запустите весь лист --- эти листы всегда меньше 500 строк.

Пример листа:

Пример листа

1 ответ1

1

Создайте вспомогательный столбец, начиная с S9, по формуле:

=IF((A9="A")*(P9=0)=1,"HIDE","SHOW")

В VBA используйте следующий скрипт:

Option Explicit
Sub Worksheet_Activate()

    'hide all lines that match criteria
    Dim i As Long

    'finds lines. 19 denotes the S column. Change 500 to last row.
    For i = 9 To 500
        If Cells(i, 19).Value = "HIDE" Then
            'hides row
            Rows(i).EntireRow.Hidden = True
        End If
    Next

End Sub

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .