Нужна помощь, чтобы скрыть / показать строки Excel, основанные на значении в ячейке, но разрешить перемещение строк позже

3030
Jessica

В строке 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».

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

0
Можете ли вы опубликовать изображение того, о чем вы спрашиваете? Я не понимаю эту часть вашего вопроса * Есть ли способ сделать это без ручного обновления каждой строки * Prasanna 8 лет назад 0

2 ответа на вопрос

0
CallumDA

I'm not sure exactly what you mean by "manually updating every row" but if you put your code into a Worksheet_Change sub into your worksheet object (not a module) then it will run automatically every time cell D4 is updated in that worksheet

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 
Спасибо CallumDA33. Извините, я не озвучил лучше, но моя проблема в том, что я хочу, чтобы D4 активировал скрытие / отображение для строк 5 и 6, как только один пример. Я также хочу, чтобы D7 (мой «Многоуровневый вопрос») вызывал скрытие / отображение для строк 8 и 9 («Последующие вопросы Q»), а D14 (Многоуровневый) для запуска строк 15, 16, 17 («Отслеживание») и и дальше через мой лист 350 строк. Большое спасибо за Вашу помощь! Jessica 8 лет назад 0
0
Jessica

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

При любом обновлении книги, которое происходит в столбце 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

Похожие вопросы