Excel - warunkowe ukrywanie wierszy w wielu arkuszach
Kwestia
Mam jeden plik programu Excel z wieloma arkuszami i wszystkie z tymi samymi kolumnami i wierszami. Muszę ukryć określone wiersze w każdym arkuszu (te same numery wierszy dla wszystkich arkuszy), jeśli wartość jest równa zero w określonej komórce.
Jak mogę to zrobić w VB i automatycznie zaktualizować po zmianie wartości w poprzedniej określonej komórce.
tj .: mam 10 arkuszy dla dziesięciu pracowników i na każdym arkuszu mam następujące dane:
A1 = Nazwa pracownika A2 = Wiek, A4 = Wynagrodzenie, B4 = 4000 (wszystkie kwoty (wartości) różnią się w każdym arkuszu) A5 = Odliczenia, B5 = 500 A6 = Ubezpieczenie, B6 = 1000 A8 = Wynagrodzenie netto, B8 = 2500 A10 = Płatny czekiem A11 = Płatny przelewem, B11 = 2500 A13 = Razem, B13 = 2500
Moim wymaganiem jest ukrycie każdego wiersza, który ma zero w kolumnie B we wszystkich 10 arkuszach. Oczywiście wartość wszystkich arkuszy jest pobierana z jednego arkusza głównego, więc jeśli wartość w arkuszu głównym uległa zmianie, zostanie zmieniona również w 10 arkuszach na każdego korespondenta.
Uwaga: nie muszę filtrować wartości.
W skrócie chcę napisać makro, aby ukryć wszystkie wiersze (określone), które mają zero w kolumnie B, i zastosować je na 10 arkuszach, które mają te same wiersze i kolumny.
Rozwiązanie
- Otwórz VBE
- Kliknij swój arkusz główny
- Wklej ten kod:
Private Sub Worksheet_Change (ByVal Target As Range) Dim bHide As Boolean Jeśli Target.Kolumna 2 Następnie wyjdź Sub bHide = True If (CStr (Target) „0”) Następnie bHide = Fałsz dla każdego arkusza w arkuszach Jeśli Sheet.Name = ActiveSheet. Name Then GoTo Next_Sheet Sheets (Sheet.Name) .Rows (Target.Row) .Hidden = bHide Next_Sheet: Next End Sub
Uwaga
Dziękujemy rizvisa1 za tę poradę na forum.