使用字典显示数字频率?

时间:2019-04-02 13:39:02

标签: excel vba

我有一个简单的宏,它使用字典来创建范围内数字的映射。我将其映射为唯一值,并且可以看到它如何创建出现频率的计数,但是我不知道如何将工作内存转移到工作表上?我只想将这些唯一的值打印在它们旁边,也许出现的频率就可以了。

Sub Frequency()

Dim dict As Object
Dim cl As Range, rng As Range
Set dict = CreateObject("Scripting.Dictionary")

Set rng = Range("A1:D7")

For Each cl In rng.Cells
    dict(cl.Value) = dict(cl.Value) + 1
Next

'here is where I'd want it to paste into a new sheet so I can apply conditional formatting

End Sub

1 个答案:

答案 0 :(得分:1)

您可以在此处底部添加几行

Sub Frequency()

Dim dict As Object
Dim cl As Range, rng As Range
Set dict = CreateObject("Scripting.Dictionary")

Set rng = Range("A1:D7")

For Each cl In rng.Cells
    dict(cl.Value) = dict(cl.Value) + 1
Next

Dim ws As Worksheet

Set ws = Worksheets.Add

ws.Range("A1").Resize(dict.Count) = Application.Transpose(dict.keys)
ws.Range("B1").Resize(dict.Count) = Application.Transpose(dict.items)

End Sub