質問

IDと画像名の商品のリストがあります。1画像あたりの1つのエントリは、1枚のエントリの1つのエントリではなく、必要なときに列の写真の1つのエントリです。ファイルにいくつかのエントリしかなかった場合、手動手順では、同じ製品のすべての画像名を切り取り、名前なしでエントリを削除することがわかります。しかし、ファイルに10万以上のエントリがあるため、誰もが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つの連続した行を1つずつ比較する
  • 2行が一致する場合は、2行目の2列目の値を2行目にして、1行目の2列目の値に値を入れ、2行目の
  • を削除します。
  • 一致しない場合は、前のステップをスキップして、次の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