Есть акт сверки! есть накладные от разных дат, нужно что бы на второй лист выводились значения одного производителя с одной накладной и суммировал даллы??? Накладных может быть очень много!!! нужно что бы "МАКРОС" видел их все до конца???
Есть акт сверки! есть накладные от разных дат, нужно что бы на второй лист выводились значения одного производителя с одной накладной и суммировал даллы??? Накладных может быть очень много!!! нужно что бы "МАКРОС" видел их все до конца???bav
a = Sheets(1).[a5].CurrentRegion.Value With CreateObject("scripting.dictionary") For i = 3 To UBound(a) If a(i, 4) = Empty Then t = a(i, 1) Else If Len(a(i, 2)) Then .Item(t & "|" & a(i, 2) & "|" & a(i, 3)) = .Item(t & "|" & a(i, 2) & "|" & a(i, 3)) + a(i, 4) End If Next Sheets(3).[a1:b1].Resize(.Count) = Application.Transpose(Array(.keys, .items)) End With End Sub
[/vba]
Попробуйте так (вывод на третий лист):
[vba]
Code
Sub svod() Dim a(), i&, t$
a = Sheets(1).[a5].CurrentRegion.Value With CreateObject("scripting.dictionary") For i = 3 To UBound(a) If a(i, 4) = Empty Then t = a(i, 1) Else If Len(a(i, 2)) Then .Item(t & "|" & a(i, 2) & "|" & a(i, 3)) = .Item(t & "|" & a(i, 2) & "|" & a(i, 3)) + a(i, 4) End If Next Sheets(3).[a1:b1].Resize(.Count) = Application.Transpose(Array(.keys, .items)) End With End Sub