W wierszu 4 zadaję pytanie, a D4 zawiera odpowiedź Tak lub Nie.
Jeśli odpowiedź brzmi Tak w D4, chcę, aby ukryte wiersze 5 i 5 pojawiły się z pytaniami uzupełniającymi. To działa dla mnie:
If Range("D4").Value = "No" Then
Rows("5:6").EntireRow.Hidden = True
ElseIf Range("D4").Value = "Yes" Then
Rows("5:6").EntireRow.Hidden = False
W kolumnie A identyfikuję początkowe pytania (jak w wierszu 4) jako „pytania wielopoziomowe”, a kolejne pytania (takie jak wiersze 5 i 6) są oznaczone jako „kontynuacja pytań”.
Czy można to zrobić bez ręcznego aktualizowania każdego wiersza? Muszę także zezwolić na dodawanie / usuwanie wierszy powyżej, które miałyby wpływ na to, które wiersze zostaną ukryte / odkryte. Dzięki.
Odpowiedzi:
Nie jestem pewien, co dokładnie masz na myśli, „ręcznie aktualizując każdy wiersz”, ale jeśli umieścisz swój kod w subskrypcji Worksheet_Change w swoim obiekcie arkusza (nie w module), będzie on uruchamiany automatycznie w każdej komórce czasu D4 jest aktualizowany w tym arkuszu
źródło
Otrzymałem pomoc od znajomego i chciałem udostępnić rozwiązanie - poniżej.
W przypadku każdej aktualizacji skoroszytu, która ma miejsce w kolumnie 4 (która jest odpowiedzią klienta), jeśli odpowiedzą „Nie” na „pytanie wielowarstwowe” ... kolejne wiersze z „kontynuacją pytania” zostaną ukryte.
Należy zaktualizować to makro, jeśli przeniesiono kolumny Kryteria biznesowe („A”) lub Odpowiedź klienta.
To powinno działać:
Private Sub Worksheet_Change (ByVal Target As Range) Dim i As Integer
Napis końcowy
źródło