VBA:将单元格值拆分为多行并保留其他数据

MJ9*_*J95 8 excel vba excel-vba

我在一列中用逗号分隔值,我需要将它们拆分成新行并保持所有其他数据相同.我的行数可变.

我不知道B列中的单元格中总有多少个值,所以我需要动态循环遍历数组

例:

ColA       ColB       ColC      ColD
Monday     A,B,C      Red       Email
Run Code Online (Sandbox Code Playgroud)

输出:

ColA       ColB       ColC      ColD
Monday       A         Red       Email
Monday       B         Red       Email
Monday       C         Red       Email
Run Code Online (Sandbox Code Playgroud)

尝试过类似的东西:

colArray = Split(ws.Cells(i, 2).Value, ", ")
For i = LBound(colArray) To UBound(colArray)
        Rows.Insert(i)
Next i
Run Code Online (Sandbox Code Playgroud)

但我不确定如何将数据保留在第一列并将数据复制到其他列.

A.S*_*S.H 12

试试这个,您可以轻松地将其调整为您的实际工作表名称和要拆分的列.

Sub splitByColB()
    Dim r As Range, i As Long, ar
    Set r = Worksheets("Sheet1").Range("B999999").End(xlUp)
    Do While r.row > 1
        ar = Split(r.value, ",")
        If UBound(ar) >= 0 Then r.value = ar(0)
        For i = UBound(ar) To 1 Step -1
            r.EntireRow.Copy
            r.Offset(1).EntireRow.Insert
            r.Offset(1).value = ar(i)
        Next
        Set r = r.Offset(-1)
    Loop
End Sub
Run Code Online (Sandbox Code Playgroud)