Переформатирование таблицы с данными - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д