Przydatne informacje na pasku stanu

Ktoś taki, ale osobiście potrzebuję paska stanu tylko w 2-3 przypadkach:

  • po przefiltrowaniu wyświetla ilość wartości pozostałych po selekcji
  • po wybraniu zakresu wyświetla sumę, średnią i liczbę wybranych komórek
  • w przypadku ciężkich plików widać postęp w przeliczaniu formuł w księdze.

Niewiele jak na linię, która zajmuje prawie całą szerokość ekranu i cały czas na niej wisi. Spróbujmy rozszerzyć tę skromną listę i dodać do niej kilka przydatnych funkcji 🙂

Ogólne zasady zarządzania paskiem stanu

Zarządzanie paskiem stanu za pomocą Visual Basic jest bardzo łatwe. Aby wyświetlić w nim swój tekst, możesz użyć prostego makra:

Sub MyStatus() Application.StatusBar = "Zapisz!" Napis końcowy  

Po jej uruchomieniu otrzymujemy:

Przydatne informacje na pasku stanu

Aby przywrócić pierwotny stan paska stanu, będziesz potrzebować tego samego krótkiego „anty-makro”:

Sub MyStatus_Off() Application.StatusBar = Fałszywy koniec Sub  

W podstawowej wersji, jak widać, wszystko jest bardzo proste. Teraz spróbujmy rozwinąć pomysł…

Adres wybranego zakresu na pasku stanu

 W lewym górnym rogu okna programu Excel na pasku formuły zawsze możesz zobaczyć adres bieżącej komórki. Ale jeśli zaznaczony jest cały zakres, to niestety nie zobaczymy tam adresu wyboru – wyświetla się ta sama jedna aktywna komórka:

Przydatne informacje na pasku stanu

Aby rozwiązać ten problem, możesz użyć prostego makra, które wyświetli adres wybranego obszaru na pasku stanu. Ponadto makro to powinno być uruchamiane automatycznie, przy każdej zmianie zaznaczenia na dowolnym arkuszu – w tym celu umieścimy je w obsłudze zdarzeń WybórZmiana nasza książka.

Otwórz Edytor Visual Basic za pomocą przycisku o tej samej nazwie na karcie wywoływacz (Deweloper) lub skróty klawiaturowe Lewy Alt+F11. Znajdź swoją książkę w lewym górnym rogu panelu Projekt i otwórz w niej moduł, klikając dwukrotnie Ta książka (Ten zeszyt):

W oknie, które zostanie otwarte, skopiuj i wklej następujący kod makra:

Private Sub Workbook_SheetSelectionChange(ByVal Sh jako obiekt, ByVal Target jako zakres) Application.StatusBar = "Выделено: " & Selection.Address(0, 0) End Sub  

Teraz, gdy zostanie wybrany dowolny zakres (w tym więcej niż jeden!), jego adres zostanie wyświetlony na pasku stanu:

Przydatne informacje na pasku stanu

Aby adresy z kilku zakresów wybranych za pomocą klawisza Ctrl nie mogły się łączyć, możesz dodać niewielką poprawę – użyj funkcji Replace, aby zastąpić przecinek przecinkiem spacją:

Private Sub Workbook_SheetSelectionChange(ByVal Sh jako obiekt, ByVal Target jako zakres) Application.StatusBar = "Выделено: " & Replace(Selection.Address(0, 0), ",", ", ") End Sub  

Liczba wybranych komórek na pasku stanu

Po wybraniu dowolnego zakresu liczba zaznaczonych komórek, które nie są puste, jest domyślnie wyświetlana po prawej stronie paska stanu. Czasami trzeba znać liczbę przydzielonych. To zadanie można również wykonać za pomocą prostego makra do obsługi zdarzenia książki SelectionChange, jak w poprzednim przykładzie. Potrzebne będzie makro takie jak:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Dim CellCount As Variant, rng As Range dla każdego rng In Selection.Areas 'Iterowanie przez wszystkie selekcje RowsCount = rng.Rows.Count 'liczba wierszy ColumnsCount = rng.Columns . Count 'liczba kolumn CellCount = CellCount + RowsCount * ColumnsCount 'zlicza całkowitą liczbę komórek Dalej 'wyświetlanie na pasku stanu Application.StatusBar = "Wybrane:" & CellCount i "komórki" End Sub  

To makro przechodzi w pętlę przez wszystkie obszary zaznaczone klawiszem Ctrl (jeśli jest ich więcej niż jeden), przechowuje liczbę wierszy i kolumn w każdym obszarze w zmiennych RowsCount i ColumnsCount oraz akumuluje liczbę komórek w zmiennej CellCount, która jest następnie wyświetlana na pasku stanu. W pracy będzie to wyglądać tak:

Przydatne informacje na pasku stanu

Oczywiście możesz połączyć to i poprzednie makra, aby wyświetlić jednocześnie adres wybranego zakresu i liczbę komórek. Wystarczy zmienić tylko jedną przedostatnią linię na:

Application.StatusBar = "Wybrane: " & Replace(Selection.Address(0, 0), ",", ", ") & " - łącznie " & CellCount & " komórki"  

Wtedy obraz będzie całkiem cudowny:

Przydatne informacje na pasku stanu

Cóż, myślę, że masz pomysł. Zaproponuj w komentarzach – co jeszcze przydałoby się wyświetlić na pasku statusu?

  • Czym są makra, jak działają, jak ich używać i tworzyć
  • Wygodny wybór współrzędnych na arkuszu Excel
  • Jak sprawić, by złożone formuły były bardziej wizualne?

Dodaj komentarz