Полезна информация в лентата на състоянието

Някой като, но аз лично се нуждая от лента на състоянието само в 2-3 случая:

  • след филтриране, той показва броя на стойностите, оставащи след селекцията
  • когато е избран диапазон, той показва сумата, средната стойност и броя на избраните клетки
  • в случай на тежки файлове можете да видите напредъка в преизчисляването на формули в книгата.

Не толкова за линия, която заема почти цялата ширина на екрана и виси на него през цялото време. Нека се опитаме да разширим този скромен списък и да добавим още няколко полезни функции към него 🙂

Общи принципи за управление на лентата на състоянието

Управлението на лентата на състоянието с Visual Basic е много лесно. За да покажете вашия текст в него, можете да използвате прост макрос:

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

След като го стартираме, получаваме:

Полезна информация в лентата на състоянието

За да възстановите първоначалното състояние на лентата на състоянието, ще ви е необходим същият кратък „анти-макро“:

Sub MyStatus_Off() Application.StatusBar = False End Sub  

В основната версия, както можете да видите, всичко е много просто. Сега нека се опитаме да развием идеята...

Адрес на избрания диапазон в лентата на състоянието

 В горния ляв ъгъл на прозореца на Excel в лентата с формули винаги можете да видите адреса на текущата клетка. Но ако е избран цял диапазон, тогава, за съжаление, няма да видим адреса за избор там - показва се същата една активна клетка:

Полезна информация в лентата на състоянието

За да разрешите този проблем, можете да използвате прост макрос, който ще покаже адреса на избраната област в лентата на състоянието. Освен това, този макрос трябва да се стартира автоматично, с всяка промяна в селекцията на всеки лист - за това ще го поставим в манипулатора на събития SelectionChange нашата книга.

Отворете редактора на Visual Basic, като използвате бутона със същото име в раздела предприемач (Разработчик) или клавишни комбинации Ляв Alt+F11. Намерете книгата си в горния ляв ъгъл на панела Project и отворете модула в нея с двукратно щракване Тази книга (Тази работна книга):

В прозореца, който се отваря, копирайте и поставете следния макро код:

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

Сега, когато е избран диапазон (включително повече от един!), неговият адрес ще се показва в лентата на състоянието:

Полезна информация в лентата на състоянието

За да предотвратите сливането на адресите на няколко диапазона, избрани с Ctrl, можете да добавите малко подобрение – използвайте функцията Replace, за да замените запетая със запетая с интервал:

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

Брой избрани клетки в лентата на състоянието

Когато е избран диапазон, броят на непразните избрани клетки се показва от дясната страна на лентата на състоянието по подразбиране. Понякога трябва да знаете броя на разпределените. Тази задача може да бъде изпълнена и с прост макрос за обработка на събитието на книгата SelectionChange, както в предишния пример. Ще ви трябва макрос като:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Dim CellCount As Variant, rng As Range For Every rng In Selection.Areas 'Итерация през всички селекции RowsCount = rng.Rows.Count 'брой редове ColumnsCount = rng.Columns . Count 'брой колони CellCount = CellCount + RowsCount * ColumnsCount 'натрупване на общия брой клетки Next 'показва в лентата на състоянието Application.StatusBar = "Избрани: " & CellCount & " клетки" End Sub  

Този макрос преминава през всички избрани с Ctrl области (ако има повече от една), съхранява броя на редовете и колоните във всяка област в променливите RowsCount и ColumnsCount и натрупва броя на клетките в променливата CellCount, която след това се показва в лентата на състоянието. На работа ще изглежда така:

Полезна информация в лентата на състоянието

Разбира се, можете да комбинирате този и предишните макроси, за да покажете едновременно адреса на избрания диапазон и броя на клетките. Трябва да промените само един предпоследен ред на:

Application.StatusBar = "Избрано: " & Replace(Selection.Address(0, 0), ",", ", ") & " - общо " & CellCount & " клетки"  

Тогава картината ще бъде доста прекрасна:

Полезна информация в лентата на състоянието

Е, мисля, че схващате идеята. Предложете в коментарите - какво друго би било полезно да се покаже в лентата на състоянието?

  • Какво представляват макросите, как работят, как се използват и създават
  • Удобен избор на координати на Excel лист
  • Как да направите сложните формули по-визуални

Оставете коментар