2017-01-10 5 views
0

ты мой последний курорт :) я боролся со следующим Excel VBA работы:Excel VBA: Расширенный переставляя данные в новую таблицу для экспорта

Из огромного XLS с данными об изделии из которых мне нужно экспортировать некоторые данные в специальном формате переупорядочивания: вариации того же продукта должны быть экспортированы как дополнение к базовому продукту, а не отдельному продукту.

Перестроенные данные должны быть экспортированы в текстовый файл .CSV, чтобы иметь возможность импортироваться в Adobe Indesign (для объединения данных).

Изображения объяснят процесс еще лучше: см. Ссылки ниже.

Исходный файл выглядит примерно так: Base Table

enter image description here

Он содержит один столбец «CatStyleNr», который служит в качестве проверки, чтобы увидеть, если продукт должен быть из других частей , Во время экспорта продукты с одним и тем же «CatStyleNr» должны быть объединены в одну строку вместо разных строк.

Необходимый результат выглядит как: Экспорт таблицы

enter image description here

Растворы, насколько я могу думать, это запустить через каждую строку базовой таблицы и проверить, если значение в ячейке «CatStyleNr» уже существует в таблице экспорта (на втором листе или невидимом?). Если он еще не существует, следует добавить новую строку и данные должны быть скопированы. если «CatStyleNr» уже существует, его следует добавить в существующую строку ...

Если вы пытались использовать разные макросы на основе коротких частей, я мог бы копировать из других потоков, но это просто не получается.

Кто может мне помочь? Заранее спасибо!!!!

ответ

0

Это то, что я до сих пор:

Sub ExportTXT()

Dim я как вариант «источника строк

С Таблицах ("ВЫБОР") сводных таблиц ("Выбор") . Для i = 1 до 100 Если рабочие листы («EXPORT»). ListObjects («TableExport»). ListColumns («CatStyleNr»). DataBodyRange (i) = .PivotFields («CatStyleNr»). PivotItems (i) Затем Рабочие листы («EXPORT»). ListObjects («TableExport»). ListColumns («Height2»). DataBodyRange (i) = .PivotFields («Высота»). PivotItems (i) Else Worksheets ("EXPORT"). ListObjects ("TableExport"). ListColumns ("Имя"). DataBodyRange (я) = .PivotFields ("Name"). PivotItems (I)

End If Next я End With

End Sub

Но это всегда застрял ...

Смежные вопросы