Napisałem następujący kod VBA, który zawiera warunek, w którym jeśli komórka # = „Tak”, to rozwiń dolny wiersz, w przeciwnym razie, jeśli komórka # = „Nie”, zwinąć dolny wiersz.
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("E15").Value = "Yes" Then
ActiveSheet.Outline.ShowLevels RowLevels:=3
ElseIf Range("E15").Value = "No" Then
ActiveSheet.Outline.ShowLevels RowLevels:=8
End If
End Sub
Teraz wydaje się, że działa dobrze bez żadnych problemów, ale z jakiegoś powodu rozszerza i zwija wszystkie wiersze, które są w tym samym poziomie wiersza, co wyświetlany w kodzie, naprawdę chcę, aby móc wybrać dokładnie ten wiersz, który chcę rozwinąć i zwinąć w zależności od warunku ”.
Jak widać, nie jestem zbytnio VB Pro, ale każda pomoc byłaby mile widziana.
Dzięki!
microsoft-excel
microsoft-excel-2007
macros
vba
JESTEM L.
źródło
źródło
Odpowiedzi:
Jeśli dobrze cię rozumiem, powinieneś być w stanie ustawić i wyłączyć tę
ShowDetails
właściwość, aby rozwinąć i zwinąć określone wiersze podsumowania w swoim konspekcie.Jak pokazano poniżej,
Showdetails
jest to właściwość odczytu / zapisu całego wiersza (lub kolumny) w konturze. Aby wyświetlić szczegóły dla określonego wiersza podsumowania, odwołaj się do pojedynczej komórki w tym wierszu, jak pokazano w przykładowym kodzie poniżej. Program Excel zgłosi błąd, jeśli spróbujesz ustawić właściwość na Prawda dla poziomu podsumowania, który jest już rozwinięty. Jeśli wiersz podsumowania nie jest widoczny, ponieważ jest zwinięty w większym ugrupowaniu,Showdetails
(po cichu) nie rozwinie wiersza.źródło