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)