如何使用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
当我们运行这个宏时,我们会收到以下输出:
消息框告诉我们有5 个独特的团队名称。
我们可以通过手动识别每个唯一的团队名称来验证这是否正确:
- 小牛队
- 热
- 网队
- 勇士
- 国王
事实上有 5 个独特的团队名称。
注意:要计算不同范围内唯一值的数量,只需将For Each循环中的A2:A11替换为不同的范围即可。
其他资源
以下教程说明如何在 VBA 中执行其他常见任务:
VBA:如何计算具有特定文本的单元格
VBA:如何计算范围内的行数
VBA:如何编写 COUNTIF 和 COUNTIFS 函数