Макросом разнести данные движения склада в плоский файл - VBA
Формулировка задачи:
Ребята у меня есть исходный файл движения склада, мне необходимо макросом разнести данные в плоский файл.
Как реализовать? Голова кругом yes Файл с примером приложила.
Оч надеюсь что сможете помочь мне
Решение задачи: «Макросом разнести данные движения склада в плоский файл»
textual
Листинг программы
Option Explicit Sub tt() Dim c As Range, r As Range, x As Long, i As Long, ii As Long Dim t As String, tt As String, fio As String, arr Set r = Sheets(1).[b9].CurrentRegion ReDim a(1 To r.Rows.Count - 4, 1 To 7) x = x + 1 a(x, 1) = "Дата" a(x, 2) = "Склад" a(x, 3) = "Номенклатура" a(x, 4) = "Количество" a(x, 5) = "Документ" a(x, 6) = "Приход/Расход" a(x, 7) = "Контрагент" For i = 4 To r.Rows.Count Select Case r.Rows(i).Cells(1).IndentLevel Case 0 If r.Rows(i).Cells(1).Font.Bold = True Then t = r.Rows(i).Cells(1) Case 1 If r.Rows(i).Cells(1).Font.Bold = True Then tt = r.Rows(i).Cells(1) Case 2 arr = Split(r.Rows(i).Cells(1), ",") fio = arr(UBound(arr)) For ii = 2 To r.Columns.Count If r.Rows(i).Cells(ii) > 0 Then x = x + 1 a(x, 1) = r.Rows(1).Cells(ii).MergeArea.Cells(1) '"Дата" a(x, 2) = t '"Склад" a(x, 3) = tt '"Номенклатура" a(x, 4) = r.Rows(i).Cells(ii) '"Количество" arr = Split(r.Rows(i).Cells(1), " от ") a(x, 5) = arr(0) '"Документ" a(x, 6) = r.Rows(3).Cells(ii) '"Приход/Расход" a(x, 7) = fio '"Контрагент" End If Next End Select Next With Workbooks.Add(1).Sheets(1).[a1].Resize(x, 7) .Columns(4).NumberFormat = "0.000" .Value = a .Columns.AutoFit End With End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д