【发布时间】:2020-05-18 17:54:21
【问题描述】:
我和这里有同样的问题:VBA counting multiple duplicates in array,但我还没有找到答案,我的声誉不能在那里发表评论。 我有一个包含 150 个数字的数组,其中可能包含从 1 到 50 的重复数字。数组中并不总是有 50 个数字。我需要的输出示例: - 10 次:1、2; - 20 次:3、4 等; - 0 次:5、6、7 等。 我需要计算 它有多少重复数字的组合,以及 哪些数字 在这些组合中,包括零出现 - 哪些数字不在数组中。 在上面提到的帖子中有解决方案 - 但只有当你知道有多少重复组合时 - 我不知道 - 可能有 1(所有 150 个数字都相等) - ... - 20 ...如果它包含从 1 到 50 的所有数字,则最多 50 个组合,每个组合 3 次。 感谢任何关于如何存储输出的帮助和建议 - 最后应该以上述格式将其写入工作表:[times] - [numbers](这里可能是一个字符串,例如“5 - 6 - 7”)。
这是我为 5 个组合所做的,但是做 50 个案例,然后检查 50 个字符串是否为空或包含要写入输出的内容不是很好的选择...
For i = 1 To totalNumbers 'my numbers from 1 to 50 or any other number
numberCount = 0
For j = 0 To UBound(friendsArray) 'my array of any size (in question said 150)
If i = friendsArray(j) Then
numberCount = numberCount + 1
End If
Next j
Select Case numberCount
Case 0
zeroString = zeroString & i & " - "
Case 1
oneString = oneString & i & " - "
Case 2
twoString = twoString & i & " - "
Case 3
threeString = threeString & i & " - "
Case 4
fourString = fourString & i & " - "
Case 5
fiveString = fiveString & i & " - "
Case Else
End Select
Next i
【问题讨论】:
-
如果是我,我会使用
Scripting Dictionary- 你可以在这里找到很多关于堆栈溢出的例子。
标签: arrays vba duplicates