문제

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 개의 연속 행을 하나씩 비교
  • 두 행이 일치하는 경우 두 번째 행의 두 번째 열에서 해당 값을 가져 와서 첫 번째 행의 두 번째 열 옆의 값을 넣고 두 번째 행
  • 를 삭제하십시오.
  • 일치하지 않는 경우 이전 단계를 건너 뛰고 다음 두 행을 비교하십시오.

여기 코드가

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