Я давно искал ответ на этот вопрос и нашел несколько решений, которые не работают для моей версии Excel для Ma c (v16.33 2020)
1 Используя Power Query, который не совместим
2. Я перешел по этой ссылке здесь: LINK , которая использует Scripting.Dictionary
, но при ее использовании я получаю сообщение об ошибке:
"Runtime Error '429'
Active X can't create object
3. Я скачал обновленные Dictionary.cls
и KeyValuePair.cls
с http://www.sysmod.com/Dictionary.zip
4. После обновления кода до:
Set dAttributes = New Dictionary
Set dValues = New Dictionary
Я получаю сообщение об ошибке, так как k пусто для: For Each k In dic
Проблема: у меня есть список значений с разделителями из двух столбцов, и я должен поместить их в сложенный столбец в Excel. Идентификатор, который нужно сохранить в левом столбце. Причиной этого является то, что используемой программе требуется заголовок идентификатора элемента и одна строка для каждого соответствующего URL продукта.
Например:
Column A
| Column B
Item 1
| a.jpg, b.jpg, c.jpg
Item 2
| a.jpg, b.jpg, c.jpg
Должно быть:
Column A
| Column B
Item 1
| a.jpg
Item 1
| b.jpg
Item 2
| a.jpg
Item 2
| b.jpg
Значения для элементов и изображений различны. Существуют сотни строк и значений, поэтому копирование и вставка для переноса вручную не являются приемлемым вариантом.
В настоящее время код, который у меня есть, здесь: я застрял. Пожалуйста, прокомментируйте шаги, чтобы это исправить. Я попробовал предложенные ссылки, и ничего не работает.
Sub ttt()
Dim dic As Object:
Set dAttributes = New Dictionary
Set dValues = New Dictionary
Dim x&, cl As Range, rng As Range, k, s
Set rng = Range([C1], Cells(Rows.Count, "C").End(xlUp))
x = 1 'used as a key for dictionary and as row number for output
For Each cl In rng
For Each s In Split(cl.Value2, ",")
dic.Add x, Cells(cl.Row, "A").Value2 & "|" & _
Cells(cl.Row, "B").Value2 & "|" & LTrim(s)
x = x + 1
Next s, cl
For Each k In dic
Range(Cells(k, "A"), Cells(k, "C")).Value2 = Split(dic(k), "|")
Next k
End Sub