我可以将自己的功能添加到Excel中的自定义状态栏吗?

Lew*_*ick 6 excel vba statusbar excel-vba excel-2010

如果我在Excel中选择了多个单元格,我可以在自定义状态栏中看到一些函数.这些信息是我自己选择的以下内容:

  • 平均
  • 计数
  • 数字计数
  • 最低限度
  • 最大值

我想在此列表中添加一个计算非空单元格比率的函数.该函数将是= COUNTA(范围)/(COUNTA(范围)+ COUNTBLANK(范围)),但是如何将其输入状态栏?我对VBA没有多少经验,所以欢迎一些解释.

Sid*_*out 7

尝试这样的事情(不是最好的方法,但解决了你的目的)

说明:此代码执行的操作是检查用户是否选择了有效范围(最少2个单元格),然后使用它Application.Evaluate来计算公式,然后在状态栏中显示它.另请注意,我没有做任何错误处理.我相信你会照顾它:)

将其粘贴到相关的表单区域中.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If TypeName(Target) = "Range" Then
        If Target.Cells.Count > 1 Then
            Application.StatusBar = "My Function: " & _
                                    Application.Evaluate( _
                                                          "=COUNTA(" & _
                                                           Target.Address & _
                                                           ") / (COUNTA(" & _
                                                           Target.Address & _
                                                           ") + COUNTBLANK(" & _
                                                           Target.Address & _
                                                           "))" _
                                                           )
        End If
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

这是一种非常基本的方式.如果您希望它适用于所有纸张,那么您必须相应地进行修改.

此方法的问题还在于它将抑制状态栏中的应用程序级别消息.

截图

在此输入图像描述