Карысная інфармацыя ў радку стану

Камусьці падабаецца, але мне асабіста радок стану патрэбна толькі ў 2-3 выпадках:

  • пасля фільтрацыі адлюстроўвае колькасць значэнняў, якія засталіся пасля выбару
  • калі выбраны дыяпазон, ён адлюстроўвае суму, сярэдняе значэнне і колькасць выбраных вочак
  • у выпадку цяжкіх файлаў вы можаце ўбачыць прагрэс у пераразліку формул у кнізе.

Не так шмат для лініі, якая займае амаль усю шырыню экрана і ўвесь час вісіць на ім. Паспрабуем пашырыць гэты сціплы спіс і дадаць у яго яшчэ некалькі карысных функцый 🙂

Агульныя прынцыпы кіравання радком стану

Кіраваць радком стану з дапамогай Visual Basic вельмі проста. Каб адлюстраваць свой тэкст у ім, вы можаце выкарыстоўваць просты макрас:

Sub MyStatus() Application.StatusBar = "Прывет!" Канец пад  

Пасля запуску мы атрымліваем:

Карысная інфармацыя ў радку стану

Для аднаўлення зыходнага стану радка стану спатрэбіцца той жа кароткі «антимакро»:

Sub MyStatus_Off() Application.StatusBar = False End Sub  

У базавай версіі, як бачыце, усё вельмі проста. Зараз паспрабуем развіць ідэю…

Адрас абранага дыяпазону ў радку стану

 У левым верхнім куце акна Excel у радку формул вы заўсёды можаце ўбачыць адрас бягучай ячэйкі. Але калі выдзелены цэлы дыяпазон, то, на жаль, мы не ўбачым там адрас выбару - адлюстроўваецца тая ж адна-адзіная актыўная ячэйка:

Карысная інфармацыя ў радку стану

Каб вырашыць гэтую праблему, вы можаце выкарыстоўваць просты макрас, які будзе адлюстроўваць адрас абранай вобласці ў радку стану. Больш за тое, гэты макрас павінен запускацца аўтаматычна, пры любой змене вылучэння на любым аркушы - для гэтага мы змесцім яго ў апрацоўшчык падзеі SelectionChange наша кніга.

Адкрыйце рэдактар ​​Visual Basic з дапамогай аднайменнай кнопкі на ўкладцы распрацоўшчык (Распрацоўшчык) або спалучэнне клавіш Левы Alt+F11. Знайдзіце сваю кнігу ў левым верхнім куце панэлі праекта і адкрыйце ў ёй модуль падвойным пстрычкай мышы гэтая кніга (Гэты сшытак):

У якое адкрылася акне скапіруйце і ўстаўце наступны код макраса:

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), ",", ", ") & " - total " & CellCount & " cell"  

Тады карціна атрымаецца зусім цудоўная:

Карысная інфармацыя ў радку стану

Што ж, думаю, вы зразумелі. Прапануйце ў каментарах – што яшчэ было б карысна адлюстраваць у радку стану?

  • Што такое макрасы, як яны працуюць, як іх выкарыстоўваць і ствараць
  • Зручны выбар каардынат на лісце Excel
  • Як зрабіць складаныя формулы больш нагляднымі

Пакінуць каментар