Informații utile în bara de stare

Cuiva ca, dar eu personal am nevoie de o bară de stare doar în 2-3 cazuri:

  • după filtrare, afișează numărul de valori rămase după selecție
  • când este selectat un interval, acesta afișează suma, media și numărul de celule selectate
  • în cazul fișierelor grele, puteți vedea progresul în recalcularea formulelor în carte.

Nu atât de mult pentru o linie care ocupă aproape toată lățimea ecranului și se atârnă de ea tot timpul. Să încercăm să extindem această listă modestă și să îi adăugăm câteva funcții utile 🙂

Principii generale de gestionare a barei de stare

Gestionarea barei de stare cu Visual Basic este foarte simplă. Pentru a afișa textul în el, puteți utiliza o macrocomandă simplă:

Sub MyStatus() Application.StatusBar = "Привет!" End Sub  

După ce îl rulăm, obținem:

Informații utile în bara de stare

Pentru a restabili starea inițială a barei de stare, veți avea nevoie de același scurt „anti-macro”:

Sub MyStatus_Off() Application.StatusBar = False End Sub  

În versiunea de bază, după cum puteți vedea, totul este foarte simplu. Acum să încercăm să dezvoltăm ideea...

Adresa intervalului selectat în bara de stare

 În colțul din stânga sus al ferestrei Excel din bara de formule, puteți vedea întotdeauna adresa celulei curente. Dar dacă este selectat un întreg interval, atunci, din păcate, nu vom vedea adresa de selecție acolo - este afișată aceeași celulă activă:

Informații utile în bara de stare

Pentru a rezolva această problemă, puteți utiliza o macrocomandă simplă care va afișa adresa zonei selectate în bara de stare. Mai mult, această macrocomandă ar trebui să fie lansată automat, cu orice modificare a selecției pe orice foaie – pentru aceasta o vom plasa în handlerul de evenimente SelectionChange cartea noastră.

Deschideți Editorul Visual Basic folosind butonul cu același nume din filă dezvoltator (Dezvoltator) sau comenzi rapide de la tastatură Alt stânga+F11. Găsiți cartea în colțul din stânga sus al panoului Proiect și deschideți modulul din acesta făcând dublu clic Această carte (Acest registru de lucru):

În fereastra care se deschide, copiați și inserați următorul cod macro:

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

Acum, când este selectat orice interval (inclusiv mai mult de unul!), adresa acestuia va fi afișată în bara de stare:

Informații utile în bara de stare

Pentru a preveni îmbinarea adreselor mai multor intervale selectate cu Ctrl, puteți adăuga o mică îmbunătățire - utilizați funcția Înlocuire pentru a înlocui o virgulă cu o virgulă cu un spațiu:

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

Numărul de celule selectate în bara de stare

Când este selectat orice interval, numărul de celule selectate negoale este afișat implicit în partea dreaptă a barei de stare. Uneori trebuie să știți numărul de alocat. Această sarcină poate fi realizată și cu o macrocomandă simplă pentru a gestiona evenimentul de carte SelectionChange, ca în exemplul anterior. Veți avea nevoie de o macrocomandă precum:

Private Sub Workbook_SheetSelectionChange(ByVal Sh ca obiect, ByVal țintă ca interval) Dim CellCount ca variantă, rng ca interval pentru fiecare rng din Selection.Areas 'Iterează prin toate selecțiile RowsCount = rng.Rows.Count 'număr de rânduri ColumnsCount = rng.Columns . Numărați „numărul de coloane CellCount = CellCount + RowsCount * ColumnsCount „acumulează numărul total de celule Următorul „afișează în bara de stare Application.StatusBar = „Selectat: „ & CellCount & „ celule” End Sub  

Această macrocomandă parcurge toate zonele selectate cu Ctrl (dacă există mai multe), stochează numărul de rânduri și coloane din fiecare zonă în variabilele RowsCount și ColumnsCount și acumulează numărul de celule din variabila CellCount, care este apoi afișată. în bara de stare. La locul de muncă va arăta așa:

Informații utile în bara de stare

Desigur, puteți combina aceasta și macrocomenzile anterioare pentru a afișa atât adresa intervalului selectat, cât și numărul de celule în același timp. Trebuie doar să schimbați o penultima linie în:

Application.StatusBar = "Selectat: " & Înlocuire(Selection.Address(0, 0), ",", ", ") & " - total " & CellCount & " celule"  

Atunci imaginea va fi destul de minunată:

Informații utile în bara de stare

Ei bine, cred că ai înțeles ideea. Sugerați în comentarii – ce altceva ar fi util să afișați în bara de stare?

  • Ce sunt macrocomenzile, cum funcționează, cum să le folosiți și să le creați
  • Selectarea comodă a coordonatelor pe o foaie Excel
  • Cum să faci formulele complexe mai vizuale

Lasă un comentariu