如何使用vba计算范围内的唯一值


您可以使用以下基本语法使用 VBA 来计算某个范围内唯一值的数量:

 SubCountUnique ()
    Dim Rng As Range, List As Object, UniqueCount As Long
    Set List = CreateObject(" Scripting.Dictionary ")
    
    'count unique values in range A2:A11
    For Each Rng In Range(" A2:A11 ")
      If Not List.Exists(Rng.Value) Then List.Add Rng.Value, Nothing
    Next
    
'store unique count
UniqueCount = List.Count
    
    ' display unique count
    MsgBox " Count of Unique Values: " & UniqueCount

End Sub

此特定示例计算A2:A11范围内唯一值的数量,然后在消息框中显示该计数。

以下示例展示了如何在实践中使用此语法。

示例:使用VBA计算范围内的唯一值

假设我们在 Excel 中有以下篮球队名称列表:

假设我们要计算A2:A11范围内唯一团队名称的数量。

我们可以创建以下宏来执行此操作:

 SubCountUnique()
Dim Rng As Range, List As Object, UniqueCount As Long
    Set List = CreateObject(" Scripting.Dictionary ")
    
    'count unique values in range A2:A11
For Each Rng In Range(" A2:A11 ")
      If Not List.Exists(Rng.Value) Then List.Add Rng.Value, Nothing
    Next
    
    'store unique count
    UniqueCount = List.Count
    
    'display unique count
    MsgBox " Count of Unique Values: " & UniqueCount

End Sub

当我们运行这个宏时,我们会收到以下输出:

单个 VBA 编号

消息框告诉我们有5 个独特的团队名称。

我们可以通过手动识别每个唯一的团队名称来验证这是否正确:

  • 小牛队
  • 网队
  • 勇士
  • 国王

事实上有 5 个独特的团队名称。

注意:要计算不同范围内唯一值的数量,只需将For Each循环中的A2:A11替换为不同的范围即可。

其他资源

以下教程说明如何在 VBA 中执行其他常见任务:

VBA:如何计算具有特定文本的单元格
VBA:如何计算范围内的行数
VBA:如何编写 COUNTIF 和 COUNTIFS 函数

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注