Excel VBA:高级重新排列新表中的数据以进行导出

时间:2017-01-10 10:40:35

标签: excel vba sorting csv export

你是我的最后一招:) 我一直在努力完成以下Excel VBA工作:

在具有产品数据的巨大XLS中,我需要以特殊的重新排列格式导出一些数据:必须将相同产品的变体作为基础产品的附加信息导出,而不是单独的产品。

重新排列的数据必须导出到.CSV文本文件才能导入Adobe Indesign(用于数据合并)。

图像将更好地解释过程:请参阅下面的链接。

源文件如下所示: 基本表

enter image description here

它包含一列" CatStyleNr"用作检查产品是否属于其他部分的检查。在出口期间,产品具有相同的" CatStyleNr"应该组合成一行,而不是不同的行。

必要的结果如下所示: 导出表

enter image description here

据我所知,解决方案是遍历基表的每一行,并检查单元格中的值是否为CatStyleNr"已存在于导出表中(在第二个工作表上或不可见?)。如果它还不存在,则应添加新行并复制数据。如果" CatStyleNr"已存在,应将其添加到现有行...

如果我根据短片尝试不同的宏,我可以从其他线程复制,但它不会解决。

任何可以帮助我的人?提前谢谢!!!!

1 个答案:

答案 0 :(得分:0)

这是我到目前为止所做的:

Sub ExportTXT()

Dim i As Variant'row source

使用工作表(“SELECTION”)。数据透视表(“选择”) 对于i = 1到100 如果是工作表(“EXPORT”)。ListObjects(“TableExport”)。ListColumns(“CatStyleNr”)。DataBodyRange(i)=。PivotFields(“CatStyleNr”)。PivotItems(i)Then     工作表(“EXPORT”)。ListObjects(“TableExport”)。ListColumns(“Height2”)。DataBodyRange(i)=。PivotFields(“Height”)。PivotItems(i) 其他     工作表(“EXPORT”)。ListObjects(“TableExport”)。ListColumns(“Name”)。DataBodyRange(i)=。PivotFields(“Name”)。PivotItems(i)

结束如果 下一个我

结束

End Sub

但它总是被卡住了......