Как мне создать макрос, который скрывает ячейки при выполнении 2 условий / ячеек (имеется несколько целевых адресов)

#vba

#vba

Вопрос:

 Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = "$E$22" AND  If Target.Address = "$B$22" Then
        If UCase(Target) = "NO" Then
            Rows("23").EntireRow.Hidden = True

        Else
            Rows("23").EntireRow.Hidden = False

        End If
    End If
  

Ответ №1:

Для этого конкретного примера, где есть два варианта, вы могли бы использовать:

 If Target.Address = "$E$22" OR Target.Address = "$B$22" Then
  

Если у вас есть больше, тогда посмотрите на использование CASE инструкции:

 Select Case Target.Address
    Case "$E$22"
        'Do Something
    Case "$B$22"
        'Do Something Else
End Select
  

Введите столько, сколько вам нужно, если вам нужно, чтобы что-то сделать, когда это не соответствует ни одному критерию, сделайте свой последний случай Case Else перед окончательным выбором

Комментарии:

1. Предоставленный вами ответ заключается в том, что если выполняется 1 условие, мне нужны два

2. Прочитайте это еще раз, я использую условие OR для двух условий и привожу пример инструкции case, если вы чувствуете, что я все еще не дал вам указания, опубликуйте более подробную информацию о ваших требованиях

3. Итак, когда я попытался выполнить OR, он скрыл бы ячейку для меня, если бы E22 или B22 были No. Однако я хотел, чтобы он скрывал ячейку только тогда, когда оба не были

4. Измените или на и