Использование словаря VBA для суммирования строк с одним и тем же ключом - PullRequest
0 голосов
/ 16 октября 2018

В основном у меня есть таблица данных с таблицей влияния

 A1    1
 A1    5
 A1    6
 B1    2
 B1    3
 C1    6
 C1    8

И результат, который я хотел бы получить:

A1    1              A1    12
A1    5              B1    5
A1    6              C1    14
B1    2
B1    3
C1    6
C1    8

Я подумал, что мог бы использовать словарь длясделай так, проблема в том, что я не могу понять это, я изучал в течение недели, и ничего, что я не мог понять, показывает.

Я написал этот фрагмент кода сейчас:

 Dim k As String
 Dim d As Object
 For each k in d.keys
   lastRow=Sheets("Sheet2").Cells(Rows.Count,1).End(x1Up).Row
     For x=2 to lastRow
        If Cells(x,"A")=k Then
        'basically sum column B and print key + total
        End If
      Next x

Спасибо!

1 Ответ

0 голосов
/ 16 октября 2018

Использование словаря - быстрый способ, особенно если вы сначала загружаете данные в массив.

Option Explicit
Public Sub Test()
    Dim arr(), i As Long, dict As Object
    Set dict = CreateObject("Scripting.Dictionary")

    arr = [A1:B7].Value
    For i = LBound(arr, 1) To UBound(arr, 1)
        dict(arr(i, 1)) = dict(arr(i, 1)) + arr(i, 2)
    Next

    [C1].Resize(dict.Count, 1) = Application.Transpose(dict.KEYS)
    [D1].Resize(dict.Count, 1) = Application.Transpose(dict.items)

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...