状态栏中的有用信息

有人喜欢,但我个人仅在 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 工作表上方便地选择坐标
  • 如何让复杂的公式更直观

发表评论