Vba将数据模式从行更改为列表

Vba将数据模式从行更改为列表,vba,excel,Vba,Excel,如何通过宏更改数据格式模式? 目前数据如下 1. Equation contents1 contents 2 contents 3 2. ANBCDESF A C E 3. YUIOLUIO Y O I 我想将数据更改为 1. Equation contents 2. ANBCDESF A 3. ANBCDESF C 4. ANBCDESF

如何通过宏更改数据格式模式? 目前数据如下

1. Equation    contents1    contents 2  contents 3
2. ANBCDESF         A            C          E
3. YUIOLUIO         Y            O          I
我想将数据更改为

1. Equation   contents
2. ANBCDESF      A
3. ANBCDESF      C
4. ANBCDESF      E
5. YUIOLUIO      Y
6. YUIOLUIO      O
7. YUIOLUIO      I

这里是一个可能的变体

Sub test()
    Dim Dic As Object: Set Dic = CreateObject("Scripting.Dictionary")
    Dim cl As Range, Key As Variant, i&
    i = 1
    For Each cl In Range("B2:D" & Cells(Rows.Count, "A").End(xlUp).Row)
        Dic.Add i & ":" & Cells(cl.Row, 1).Value, cl.Value: i = i + 1
    Next cl
    i = 2: [F1] = "Equation": [G1] = "contents"
    For Each Key In Dic
        Cells(i, "F").Value = Split(Key, ":")(1)
        Cells(i, "G").Value = Dic(Key)
        i = i + 1
    Next Key
    Set Dic = Nothing
End Sub
输出


非常感谢。我稍微修改了一下内容,增加了一个专栏。代码是如何变化的?它取决于数据的范围,请显示新数据集的样本。请不要将问题更改到使原始答案无效的程度。有关此主题的讨论,请参阅。简言之:如果你的条件发生了足够大的变化,使你先前接受的答案无效,那么就让当前的回答被接受,然后继续新的问题。