计算VBA中所选(大)范围内不同值的数量,可以使用以下代码实现:
Function CountDistinctValues(rng As Range) As Long
Dim cell As Range
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
For Each cell In rng
If Not dict.exists(cell.Value) Then
dict.Add cell.Value, 1
End If
Next cell
CountDistinctValues = dict.Count
End Function
这个函数接受一个范围作为参数,并返回该范围内不同值的数量。它使用一个字典对象来存储已经出现过的值,并在遍历范围时检查每个单元格的值是否已经存在于字典中。如果不存在,则将其添加到字典中。最后,返回字典中键值对的数量即为不同值的数量。
在使用这个函数时,只需要将所选范围作为参数传递给它即可:
Sub TestCountDistinctValues()
Dim rng As Range
Set rng = Range("A1:A10")
Dim count As Long
count = CountDistinctValues(rng)
MsgBox "不同值的数量为:" & count
End Sub
这个示例代码将选中A1:A10范围内的单元格,并计算其中不同值的数量。最后,弹出一个消息框显示结果。
领取专属 10元无门槛券
手把手带您无忧上云