如何计算数组(VBA)中的重复值?

时间:2018-08-22 17:59:27

标签: vba excel-vba

假设我有一个包含以下数据的数组:

apples
apples
apples
apples
oranges
grapes
oranges
apples
oranges
grapes
bananas

如何使输出看起来像这样:

Item        count
apples        5
oranges       3
grapes        2
bananas       1

我不是在寻找数据透视表解决方案,而是在VBA中寻找代码。

预先感谢您的帮助。

当前代码我正在使用以下代码:

'Setting Up Dynamic Array to Store Fruit Selections
Dim MyArray() As Variant


'Counting # of Rows
Dim lRow As Long
lRow = ws.Range("A13", ws.Range("A13").End(xlDown)).Rows.Count


'Resize Array
ReDim MyArray(lRow)


For i = 1 To lRow
    MyArray(x) = ws.Cells(i + 12, 11)
    x = x + 1
Next

现在,我已将所有水果值存储在数组中,如何计算唯一水果的数量及其各自的数量?

1 个答案:

答案 0 :(得分:1)

这是一种字典方法。我注意到您使用的是A列来查找最后一行,但我相信您的水果在K列中。每次在字典中再次遇到某个键时,都会在该键的现有值中添加1:

public void ConfigureServices(IServiceCollection services)
{
    services.Configure(o =>
    o.ClientModelValidatorProviders.Add(new DateInputValidatorProvider()));
}

代码:

fruitDict(.Cells(i + 12, 11).Value) = fruitDict(.Cells(i + 12, 11).Value) + 1