Переформатирование таблицы с данными - VBA

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

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

Добрый день, коллеги. Нужна Ваша помощь в решении следующей задачи: имеется исходная таблица отчета по продажам, которая выгружается из 1С. Вы можете найти ее в файле на листе "Как есть". Обычно, в ручном режиме происходит перенос данных с формата "Как есть" в формат, который Вы можете найти на листе "Как нужно". Ввиду того, что объем данных становится все больше (на данный момент, в день количество строк с данными доходит до 1 000), соответственно процесс по их трансформации также удлиняется. Напишите пожалуйста, каким образом, можно осуществить трансформацию данных в формат, который находится на листе "Как нужно"? Буду признателен Вам за любую помощь. С уважением, Евгений

Решение задачи: «Переформатирование таблицы с данными»

textual
Листинг программы
  1. Sub Преобразовать_чистые_продажи_2()
  2.     Dim i&, j&, k&, LastRow&, Kontragent, Region, Manager, A, B
  3.     Cells.UnMerge
  4.     Cells.ClearFormats
  5.     Rows(8).Delete
  6.     Rows("1:6").Delete
  7.     Columns("A:M").ColumnWidth = 32.5
  8.     LastRow = Cells(Rows.Count, 2).End(xlUp).Row
  9.     Range("A1:C" & LastRow).Value = Range("B1:D" & LastRow).Value
  10.     Columns("D").ClearContents
  11.     [A1] = "Код"
  12.     [b1] = "Номенклатура"
  13.     [C1] = "Единица имерения"
  14.     [f1] = "Менеджер"
  15.     [d1] = "Контрагент"
  16.     A = Range("A1:M" & LastRow).Value
  17.     ReDim B(1 To LastRow, 1 To 13)
  18.     For j = 1 To 13
  19.         B(1, j) = A(1, j)
  20.     Next
  21.     k = 1
  22.     For i = 2 To LastRow - 1
  23.         If Trim(A(i, 1)) = "" Then
  24.             If Trim(A(i, 2)) <> "" Then Kontragent = A(i, 2)
  25.             If Trim(A(i, 5)) <> "" Then Region = A(i, 5)
  26.             If Trim(A(i, 6)) <> "" Then Manager = A(i, 6)
  27.         Else
  28.             k = k + 1
  29.             For j = 1 To 13
  30.                 B(k, j) = A(i, j)
  31.             Next
  32.             B(k, 4) = Kontragent
  33.             B(k, 5) = Region
  34.             B(k, 6) = Manager
  35.         End If
  36.     Next
  37.     Range("A1:M" & LastRow).Value = B
  38.     Rows(1).Font.Bold = True
  39. End Sub

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


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

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

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

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

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

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