Python Excel VBA MACBOOK-分隔行值到堆叠的2列

Python Excel VBA MACBOOK-分隔行值到堆叠的2列,python,excel,vba,Python,Excel,Vba,我一直在寻找这个问题的答案,并找到了多种解决方案,这些解决方案不适用于我的Excel for Mac v16.33 2020版本 1.使用不兼容的电源查询 2.我在这里遵循了这个链接:它使用Scripting.Dictionary,但在使用它时,我不断得到错误:运行时错误'429'Active X无法创建对象 3.我从下载了更新的Dictionary.cls和KeyValuePair.cls 4.将代码更新为:Set dAttributes=New Dictionary后 Set dValues

我一直在寻找这个问题的答案,并找到了多种解决方案,这些解决方案不适用于我的Excel for Mac v16.33 2020版本 1.使用不兼容的电源查询 2.我在这里遵循了这个链接:它使用Scripting.Dictionary,但在使用它时,我不断得到错误:运行时错误'429'Active X无法创建对象 3.我从下载了更新的Dictionary.cls和KeyValuePair.cls 4.将代码更新为:Set dAttributes=New Dictionary后 Set dValues=New Dictionary我得到一个错误,因为k为空:对于dic中的每个k

问题: 我有一个两列分隔值列表,我必须将它们放在excel上的一个堆叠列中。要保留在左列的标识符。这样做的原因是我们使用的程序需要项目ID标题,每个相关的产品URL需要一行

例如: A列| B列 项目1 | a.jpg、b.jpg、c.jpg 项目2 | a.jpg、b.jpg、c.jpg

需要: A列| B列 项目1 | a.jpg 项目1 | b.jpg 项目2 | a.jpg 项目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

这不需要字典——将ColB中的值拆分并在数组上循环:对于每个元素,写出ColA中的值,并将元素值写到新行

Dim rw As Range
Dim ws As Worksheet, arr, e, c As Range
Set ws = ActiveSheet
Set c = ws.Range("H1") '<< start of output

'loop over input rows
For Each rw In ws.Range("A1").CurrentRegion.Rows
    arr = Split(rw.Cells(2).Value, ",")
    For Each e In arr
        c.Resize(1, 2).Value = Array(rw.Cells(1).Value, Trim(e))
        Set c = c.Offset(1, 0) 'next output row
    Next e
Next rw

这不需要字典——将ColB中的值拆分并在数组上循环:对于每个元素,写出ColA中的值,并将元素值写到新行。顺便说一句,你的代码示例使用的是ColC,它不在你的示例数据中。我觉得很傻。你太棒了。我在拔头发!!非常感谢你,蒂姆