Разные записи для каждого изображения продукта

StackOverflow https://stackoverflow.com//questions/25090584

  •  02-01-2020
  •  | 
  •  

Вопрос

У меня есть список продуктов с идентификатором и изображением изображения.Одна запись на картинку вместо одной записи на продукт и фотографии в столбцах, насколько мне нужно.Если бы файл имел только несколько записей, ручной процедуры, я думаю, это будет резать все изображения для одного и того же продукта, вставьте (транспонировать) и удалить записи без имени.Но поскольку файл имеет более 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-й строки, поместите значение рядом с 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