Excel macro -Split comma separated entries to new rows

后端 未结 5 716
说谎
说谎 2020-12-07 00:20

I currently have this data in a sheet

Col A   Col B   Col C
1       A       angry birds, gaming
2       B       nirvana,rock,band

What I wa

5条回答
  •  盖世英雄少女心
    2020-12-07 00:42

    If you have a substantial amount of data, you willfind working with arrays beneficial.

    Sub Macro2()
        Dim i As Long, j As Long, rws As Long
        Dim inp As Variant, outp As Variant
    
        With Worksheets("sheet2")
            inp = .Range(.Cells(1, "A"), .Cells(.Rows.Count, "C").End(xlUp)).Value2
    
            For i = LBound(inp, 1) To UBound(inp, 1)
                rws = rws + UBound(Split(inp(i, 3), ",")) + 1
            Next i
    
            ReDim outp(1 To rws, 1 To 3)
            rws = 0
    
            For i = LBound(inp, 1) To UBound(inp, 1)
                For j = 0 To UBound(Split(inp(i, 3), ","))
                    rws = rws + 1
                    outp(rws, 1) = inp(i, 1)
                    outp(rws, 2) = inp(i, 2)
                    outp(rws, 3) = Trim(Split(inp(i, 3), ",")(j))
                Next j
            Next i
    
            .Cells(1, "A").Resize(UBound(outp, 1), UBound(outp, 2)) = outp
    
        End With
    End Sub
    

提交回复
热议问题