Переформатирование таблицы с данными - VBA
Формулировка задачи:
Добрый день, коллеги.
Нужна Ваша помощь в решении следующей задачи: имеется исходная таблица отчета по продажам, которая выгружается из 1С. Вы можете найти ее в файле на листе "Как есть".
Обычно, в ручном режиме происходит перенос данных с формата "Как есть" в формат, который Вы можете найти на листе "Как нужно".
Ввиду того, что объем данных становится все больше (на данный момент, в день количество строк с данными доходит до 1 000), соответственно процесс по их трансформации также удлиняется.
Напишите пожалуйста, каким образом, можно осуществить трансформацию данных в формат, который находится на листе "Как нужно"?
Буду признателен Вам за любую помощь.
С уважением,
Евгений
Решение задачи: «Переформатирование таблицы с данными»
textual
Листинг программы
- Sub Преобразовать_чистые_продажи_2()
- Dim i&, j&, k&, LastRow&, Kontragent, Region, Manager, A, B
- Cells.UnMerge
- Cells.ClearFormats
- Rows(8).Delete
- Rows("1:6").Delete
- Columns("A:M").ColumnWidth = 32.5
- LastRow = Cells(Rows.Count, 2).End(xlUp).Row
- Range("A1:C" & LastRow).Value = Range("B1:D" & LastRow).Value
- Columns("D").ClearContents
- [A1] = "Код"
- [b1] = "Номенклатура"
- [C1] = "Единица имерения"
- [f1] = "Менеджер"
- [d1] = "Контрагент"
- A = Range("A1:M" & LastRow).Value
- ReDim B(1 To LastRow, 1 To 13)
- For j = 1 To 13
- B(1, j) = A(1, j)
- Next
- k = 1
- For i = 2 To LastRow - 1
- If Trim(A(i, 1)) = "" Then
- If Trim(A(i, 2)) <> "" Then Kontragent = A(i, 2)
- If Trim(A(i, 5)) <> "" Then Region = A(i, 5)
- If Trim(A(i, 6)) <> "" Then Manager = A(i, 6)
- Else
- k = k + 1
- For j = 1 To 13
- B(k, j) = A(i, j)
- Next
- B(k, 4) = Kontragent
- B(k, 5) = Region
- B(k, 6) = Manager
- End If
- Next
- Range("A1:M" & LastRow).Value = B
- Rows(1).Font.Bold = True
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д