题
我有一个带有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
. 不隶属于 StackOverflow