キーごとに複数のアイテムを含む辞書を作成したいと考えています。以下は私が今作業しているコードです。私は辞書を使って遊ぶのに7時間以上を費やしました。私はそれを理解できないようです。私の辞書のキーとして、私の範囲の入力からユニークな値を取得する問題はありません、問題は各キーに項目を追加するときに来る。キーが既に存在する場合は、そのキーのアイテムにSUMを追加(または追加)したり、そのキーの別のアイテムに格納されるそのキーの「カウント」を増やしたいとします。おそらく、それはビジュアルを通じて説明されるのがベストでしょう。VBAスクリプト辞書、キーごとの複数のアイテム、アイテムの合計/カウント
Key Item1 Item2
PersonA 20 SomeOtherVal
PersonB 40 SomeOtherVal
PersonA 80 SomeOtherVal
PersonB 17 SomeOtherVal
PersonC 13 SomeOtherVal
Result:
Key Item1(Sum) Item2(Count)
PersonA 100 2
PersonB 57 2
PersonC 13 1
ご覧のとおり、存在するすべてのユニークなアイテムは、独自のキーとして作成されます。キーがすでに存在する場合は、Item1がキーの現在の合計に追加され、アイテム2にはカウントがあり、その値は1ずつ増加します。以下は使用しているコードです。私はめったに遭遇しない区切り文字で単一.Item
に複数の値を接合する方法を使用し
Sub dictionaryCreate()
Dim Pair As Variant
Dim q As Range
Dim RAWDATA As Range
Dim d As Dictionary 'Object
Set d = New Dictionary 'CreateObject("Scripting.Dictionary")
Set RAWDATA = Worksheets("RAW_DATA").Range(Cells(2, 1), Cells(3000, 1))
For Each q In RAWDATA
Pair = q.Offset(0, 60).Value + q.Offset(0, 65).Value
If d.Exists(Pair) Then
'ADD to item1 SUM
'Add to item2 COUNT
Else
d(Pair) = 1 'create new key
End If
Next
End Sub
@Tim Williams、申し訳ありませんが、あなたの答えは見当たりませんでした。クラス全体が私たち全員に飛びついたと思う。 – Ambie
あなたがクラスモジュールに名前を付けなければならなかったことは気にしませんでした。テスト – Citanaf
あなたのコードを使い終わったので、うまくいきました。私は今、アイテムリストと各アイテムの合計/カウントを持つコレクションを持っています。クラスのハングアップを取得するために苦労しているが、私はこれに追加するより多くを持っているので、それは素晴らしいスタートです。ありがとう – Citanaf