В строке 4 я задаю вопрос, и D4 будет содержать ответ «да» или «нет».

Если ответ «Да» в D4, я хочу, чтобы скрытые строки 5 и 5 отображались с дополнительными вопросами. Это работает для меня:

If Range("D4").Value = "No" Then
    Rows("5:6").EntireRow.Hidden = True
ElseIf Range("D4").Value = "Yes" Then
    Rows("5:6").EntireRow.Hidden = False

В столбце AI укажите начальные вопросы (как в строке 4) как "Многоуровневые вопросы", а последующие вопросы (например, строки 5 и 6) помечены как "Последующие вопросы Q".

Есть ли способ сделать это без ручного обновления каждой строки? Кроме того, мне нужно разрешить добавление / удаление строк выше, что будет влиять на то, какие строки будут скрывать / показывать. Благодарю.

2 ответа2

0

Я не совсем уверен, что вы имеете в виду под "ручным обновлением каждой строки", но если вы поместите свой код в подпрограмму Worksheet_Change в свой объект листа (не в модуль), он будет запускаться автоматически каждый раз, когда ячейка D4 обновляется в этом листе.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$D$4" Then
        If Target.Value = "No" Then
            Rows("5:6").EntireRow.Hidden = True
        ElseIf Target.Value = "Yes" Then
            Rows("5:6").EntireRow.Hidden = False
        End If
    End If
End Sub
0

Я получил помощь от друга и хотел поделиться решением - ниже.

При любом обновлении книги, которое происходит в столбце 4 (который является ответом клиента), если они отвечают "Нет" на "Многоуровневый вопрос" ... последующие строки с "Последующим Q" будут скрыты.

Вам нужно будет обновить этот макрос, если вы переместили столбцы Business Criteria ("A") или Client Response.

Это должно работать:

Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Integer

If Target.Column = 4 Then
    If Range("A" & Target.Row).Text = "Tiered Question" Then
        i = 1
        Do While Range("A" & Target.Row + i).Text = "Follow-Up Q"
            Range("A" & Target.Row + i).EntireRow.Hidden = (Target.Value = "No")
            i = i + 1
        Loop
    End If
End If

End Sub

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