Страницы: 1
RSS
Макрос на скрытие строк по условию
 
Всем привет!
Назрел вопрос, который без помощи профи мне не решить. Суть вопроса:
Есть макрос, который отображает/скрывает строки на листе по условию (часть кода):
Код
Private Sub Worksheet_Change(ByVal Target As Range)
   If Not Intersect(Target, Range("H11")) Is Nothing Then
      Rows("12:" & Rows.Count).EntireRow.Hidden = False
      If Target = "нет" Then
         Rows("12").EntireRow.Hidden = True
         Range(Rows("12"), Rows("18")).EntireRow.Hidden = True
         Range(Rows("20"), Rows("21")).EntireRow.Hidden = True
      Else
         Rows("12:22").EntireRow.Hidden = False
      End If
     End If
End Sub

Данный макрос работу выполняет, но есть одно но - в диапазоне скрываемых/отображаемых строк есть строки, которые изначально были скрыты (строка 18, 20-21). При выполнении макроса данные строки отображаются, а мне этого совсем не нужно.
Помогите пожалуйста подправить макрос так, чтобы при отображении строк, строки 18, 20-21 не отображались.
Спасибо.
 
Код
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Range("H11")) Is Nothing Then
    If Target = "нет" Then
      Rows("12").Hidden = True
      Range(Rows("12"), Rows("18")).Hidden = True
      Range(Rows("20"), Rows("21")).Hidden = True
    Else
      Rows("12:12").Hidden = False
    End If
   End If
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Код
Dim d_ As Range
    If Not Intersect(Target, Range("H11")) Is Nothing Then
        Set d_ = Range("A12:A17,A19")
        d_.EntireRow.Hidden = Target = "Нет"
    End If


Код
    If Not Intersect(Target, Range("H11")) Is Nothing Then
        Range("A12:A17,A19").EntireRow.Hidden = Target = "Нет"
    End If
Изменено: _Boroda_ - 03.10.2022 16:59:30
Скажи мне, кудесник, любимец ба’гов...
 
Спасибо! Все заработало.
Код
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Range("H11")) Is Nothing Then
    If Target = "нет" Then
    Rows("12:22").Hidden = True
        Else
            Rows("12:17").Hidden = False
            Rows("19").Hidden = False
            Rows("22").Hidden = False

    End If
   End If
End Sub
Страницы: 1
Наверх