Код VBA для скрытия или отображения строк на основе значения ячейки

Вот мой код, но он ничего не делает, я не вижу в этом ничего плохого:

Private Sub PG1(ByVal Target As Range) If .Range("E50").Value = "Passed" Then Rows("51").EntireRow.Hidden = True End If ElseIf Range("E50").Value = "Failed" Then Rows("51").EntireRow.Hidden = True End If End Sub 

Мое намерение состоит в том, что, когда эта конкретная ячейка в предыдущей строке имеет значение «Пропущено» из раскрывающегося списка, появится следующая строка, если ее «Не удалось», тогда она будет скрыта.

Похоже, у вас в коде есть опечатки. Вы хотите что-то вроде этого:

 Sub PG1() If Range("E50").Value = "Passed" Then Rows("51:51").EntireRow.Hidden = True ElseIf Range("E50").Value = "Failed" Then Rows("51:51").EntireRow.Hidden = False End If End Sub 

Чтобы строка спрятала / скрывала обновление при изменении листа, поместите его в событие Worksheet_Change :

 Private Sub Worksheet_Change(ByVal Target As Range) If Range("E50").Value = "Passed" Then Rows("51:51").EntireRow.Hidden = True ElseIf Range("E50").Value = "Failed" Then Rows("51:51").EntireRow.Hidden = False End If End Sub 

Опечаток не было. «Строки (51)» действительны. Но вам не нужен модификатор «entirerow»

 rows(n).hidden=true ; where n is an valid row number 

Скрыть несколько строк

  range(rows(n1),rows(n2)).hidden=true ; will hide rows n1 though n2 
 Private Sub PG1() Range("$E$51").EntireRow.Hidden = (Range("$E$50").Value = "Passed") End Sub 
  • Выберите первую пустую ячейку в столбце F, начиная с строки 1. (без использования смещения)
  • VBA Shell и подождите с кодом выхода
  • Самый быстрый способ удалить строки, которые нельзя захватить с помощью SpecialCells
  • Как использовать переменные для установки свойств в VBA (Excel)
  • Как использовать инструменты в Excel VBA
  • Как перенастроить базу данных Excel с 1 длинной строки, на 3 короткие строки и автоматически повторить процесс?
  • Проблемы с макросом веб-запросов
  • Готовые заявления MS Access
  • Цикл через каждую ячейку в диапазоне ячеек при задании объекта Range
  • Как установить повторяющееся расписание для xlsm-файла с помощью планировщика задач Windows
  • Автоматизировать диалог сохранения для IE9 (vba)
  • Давайте будем гением компьютера.