Свод по нескольким листам Excel - VBA

Узнай цену своей работы

Формулировка задачи:

Всем привет, очень нужна помощь ! Есть такая задачка : в файле Excel имеется несколько листов ( может быть от 1 до 100 примерно ) , в этих листах данные по продаже товаров ( некоторые наименования товаров в разных листах повторяются ) . Ломаю голову на тем, как сделать макрос , в который будет собирать данные из всех листов, вставлять в новый лист (созданный перед всеми) , оставлять только уникальные названия и суммировать информацию по повторяющимся . С макросами я пока не совсем на "ты" , кое что сделать могу , но с такой задачей справиться не получается . Помогите , плиз. пример файла прикрепил. Заранее благодарю.

Решение задачи: «Свод по нескольким листам Excel»

textual
Листинг программы
  1. Private Sub Test1()
  2.     Dim iArr(), iCount%
  3.     aSum = Array(2, 3, 4, 6, 7) 'массив суммирования (№№ столбцов)
  4.    aCr = Array(1, 5) 'массив критериев (№№ столбцов)
  5.    With CreateObject("Scripting.Dictionary")
  6.         zg = Sheets(1).Range("B2:H2")
  7.         For Each sh In Sheets
  8.             a = sh.[B2].CurrentRegion
  9.             For i = 2 To UBound(a)
  10.                 For Each el In aCr
  11.                     t = t & a(i, el)
  12.                 Next
  13.                 If .exists(t) Then
  14.                     b = .Item(t)
  15.                     For Each el In aSum
  16.                         b(el) = b(el) + a(i, el)
  17.                     Next
  18.                 Else
  19.                     b = Application.Index(a, i, , 1)
  20.                 End If
  21.                 .Item(t) = b
  22.                 t = ""
  23.             Next
  24.         Next
  25.         a = Application.Transpose(.items)
  26.         Workbooks.Add.Worksheets(1).[A2].Resize(.Count, 7) = Application.Transpose(a)
  27.         [a1].Resize(1, 7) = zg
  28.         Columns("A:A").AutoFit
  29.         ActiveSheet.UsedRange.Sort Key1:=Range("A1"), Header:=xlYes
  30.     End With
  31. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут