每个产品图片的不同条目

时间:2014-08-02 00:49:55

标签: excel-vba vba excel

我有一个带有ID和图片名称的产品列表。每张图片一个条目,而不是每个产品一个条目和我需要的列中的图片。如果文件只有几个条目,那么手动程序我想是剪切同一产品的所有图片名称,粘贴(转置)并删除没有名称的条目。但由于该文件有超过100,000个条目,有人知道如何使用VBA执行此操作吗?

实施例: 我有什么......

product_id;  picture_name
1;           picture1.jpg
1;           picture2.jpg
1;           picture3.jpg
2;           picture4.jpg
3;           picture5.jpg
3;           picture6.jpg

我需要什么...

product_id;   1st_picture;   2nd_picture;   3rd_picture...
1;            picture1.jpg;  picture2.jpg;  picture3.jpg
2;            picture4.jpg
3;            picture5.jpg;  picture6.jpg

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我想这可以解决你的问题

  • 逐个比较两个连续的行
  • 如果两行匹配,则取第二行第二列中的相应值,将值放在第一行第二列旁边,删除第二行
  • 如果不匹配,请跳过上一步并继续比较下两行。

这是代码

Sub SortPics()
i = 2
Do
Flag = False
VarComp1 = Sheets("YourSheetName").Cells(i, 1).Value
VarComp2 = Sheets("YourSheetName").Cells(i + 1, 1).Value
If VarComp1 = VarComp2 And VarComp2 <> "" Then
    Set VarSec1 = Sheets("YourSheetName").Cells(i, 2)
    Set VarSec2 = Sheets("YourSheetName").Cells(i + 1, 2)
    VarSec1.Offset(0, 1 + j).Value = VarSec2.Value
    Sheets("YourSheetName").Cells(i + 1, 1).EntireRow.Delete
    i = i - 1
    Flag = True
End If
i = i + 1
If Flag = True Then
    j = j + 1
Else
    j = 0
End If 

Loop While VarComp1 <> ""

End Sub