有人喜歡,但我個人僅在 2-3 種情況下需要狀態欄:
- 過濾後顯示選擇後剩餘的值個數
- 當選擇一個範圍時,它會顯示所選單元格的總和、平均值和數量
- 在文件繁重的情況下,您可以在書中看到重新計算公式的進度。
對於幾乎佔據整個屏幕寬度並一直掛在屏幕上的線條來說,並沒有那麼多。 讓我們嘗試擴展這個簡單的列表並添加一些更有用的功能🙂
管理狀態欄的一般原則
使用 Visual Basic 管理狀態欄非常容易。 要在其中顯示您的文本,您可以使用一個簡單的宏:
Sub MyStatus() Application.StatusBar = "Привет!" 結束子
運行後,我們得到:
要恢復狀態欄的原始狀態,您將需要相同的短“反宏”:
Sub MyStatus_Off() Application.StatusBar = False End Sub
如您所見,在基本版本中,一切都非常簡單。 現在讓我們嘗試發展這個想法……
狀態欄中所選範圍的地址
在公式欄的 Excel 窗口左上角,您始終可以看到當前單元格的地址。 但是,如果選擇了整個範圍,那麼很遺憾,我們將不會在那裡看到選擇地址 - 顯示相同的單個活動單元格:
為了解決這個問題,您可以使用一個簡單的宏,它將在狀態欄中顯示所選區域的地址。 此外,這個宏應該自動啟動,對任何工作表上的選擇進行任何更改——為此,我們將把它放在事件處理程序中 選擇變更 我們的書。
使用選項卡上的同名按鈕打開 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 選擇的多個範圍的地址合併,您可以添加一個小改進 - 使用替換功能將逗號替換為帶空格的逗號:
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 Each rng In Selection.Areas '遍歷所有選擇 RowsCount = rng.Rows.Count '行數 ColumnsCount = rng.Columns . Count '列數 CellCount = CellCount + RowsCount * ColumnsCount '累計單元格總數 Next '在狀態欄中顯示 Application.StatusBar = "Selected:" & CellCount & "cells" End Sub
該宏循環遍歷所有Ctrl選中的區域(如果有多個),將每個區域的行數和列數存儲在RowsCount和ColumnsCount變量中,並在CellCount變量中累加單元格數,然後顯示在狀態欄中。 在工作中它看起來像這樣:
當然,您可以將這個和前面的宏結合起來,同時顯示所選範圍的地址和單元格的數量。 您只需將倒數第二行更改為:
Application.StatusBar = "已選擇:" & Replace(Selection.Address(0, 0), ",", ", ") & " - 總 " & CellCount & " 單元格"
那麼畫面會相當精彩:
嗯,我想你明白了。 在評論中提出建議——在狀態欄中顯示還有什麼有用的?
- 什麼是宏,它們如何工作,如何使用和創建它們
- 在 Excel 工作表上方便地選擇坐標
- 如何讓複雜的公式更直觀