Переформатирование таблицы с данными - 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

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


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

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

10   голосов , оценка 4 из 5
Похожие ответы