Voci diverse per ogni immagine del prodotto
Domanda
Ho un elenco di prodotti con l'ID e il nome dell'immagine.Una voce per immagine, anziché una voce per prodotto e le immagini in colonne come ne ho bisogno.Se il file aveva solo poche voci, la procedura manuale immagino che sarebbe tagliare tutti i nomi delle immagini per lo stesso prodotto, incollare (trasporre) e rimuovere le voci senza nomi.Ma dal momento che il file ha oltre 100.000 voci, qualcuno sa come farlo usando VBA?
Esempio: Cosa ho ...
product_id; picture_name
1; picture1.jpg
1; picture2.jpg
1; picture3.jpg
2; picture4.jpg
3; picture5.jpg
3; picture6.jpg
.
Cosa ho bisogno ...
product_id; 1st_picture; 2nd_picture; 3rd_picture...
1; picture1.jpg; picture2.jpg; picture3.jpg
2; picture4.jpg
3; picture5.jpg; picture6.jpg
.
Grazie mille in anticipo per il tuo aiuto.
Soluzione
Immagino che questo risolva il tuo problema
- .
- Confronta due righe consecutive una per una
- Se le due righe corrispondono, prendi il valore corrispondente nella 2a colonna della 2a riga, inserire il valore in successiva alla 2a colonna della 1a riga ed elimina la 2a riga
- Se non corrisponde a saltare il passaggio precedente e vai per il confronto delle prossime due righe.
Ecco il codice
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
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow