在VBA中计算数组中的重复值可以通过以下步骤实现:
以下是一个示例代码:
Sub CalculateDuplicates()
Dim arr() As Variant
Dim dict As Object
Dim element As Variant
Dim duplicates() As Variant
Dim i As Long, j As Long
' 将要计算的数组赋值给变量 arr
arr = Array(1, 2, 3, 4, 2, 3, 5, 6, 1)
' 创建字典对象
Set dict = CreateObject("Scripting.Dictionary")
' 遍历数组,统计每个元素的出现次数
For i = LBound(arr) To UBound(arr)
If dict.Exists(arr(i)) Then
dict(arr(i)) = dict(arr(i)) + 1
Else
dict(arr(i)) = 1
End If
Next i
' 遍历字典,找到重复值
j = 0
For Each element In dict.Keys
If dict(element) > 1 Then
ReDim Preserve duplicates(j)
duplicates(j) = element
j = j + 1
End If
Next element
' 输出重复值到工作表中
For i = LBound(duplicates) To UBound(duplicates)
Cells(i + 1, 1).Value = duplicates(i)
Next i
End Sub
这段代码首先声明了一个数组变量arr,并将要计算的数组赋值给它。然后创建了一个字典对象dict,用于存储数组中每个元素的出现次数。接下来使用循环遍历数组中的每个元素,将元素作为键值存储在字典中,并将出现次数作为对应的值。然后再次遍历字典对象,找到出现次数大于1的元素,即为重复值。最后将重复值输出到工作表中。
请注意,这只是一个简单的示例代码,实际应用中可能需要根据具体需求进行修改和优化。
领取专属 10元无门槛券
手把手带您无忧上云