我有一个带有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
.

谢谢你的帮助,以获得你的帮助。

有帮助吗?

解决方案

我猜这解决了你的问题

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

这是代码

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
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top