如何在excel中将一个单元格的内容拆分为多行记录?可以用VBA或ACCESS来解决。

拆分前:

拆分后:
本人不会vba,但是能够使用vba环境,因此还请高手提供代码,着急用。谢谢。

第1个回答  2012-10-24
以“选项”字符串长度做循环,每次取“选项”字符串中的一个字符,前三项不变输出,在其他表里输出,结果就是想要的拆分
第2个回答  2012-10-24
Sub test()
r1 = 2
r2 = 2
Sheets.Add
With Sheets("sheet1")
Range("a1:d1").Value = .Range("a1:d1").Value
Do Until .Cells(r1, 1).Value = ""
t = .Cells(r1, 4).Value
l = Len(t)
Cells(r2, 1).Resize(l, 3).Value = .Cells(r1, 1).Resize(1, 3).Value
For i = 1 To l
Cells(r2 + i - 1, 4).Value = Mid(t, i, 1)
Next
r1 = r1 + 1
r2 = r2 + l
Loop
End With
End Sub
第3个回答  2012-10-24
以“选项”字符串长度做循环,在另一个表中输出结果就可以追问

以附表为例,请教代码。谢谢。

第4个回答  2012-10-25
Sub d()
For i = 1 To Range("b25356").End(xlUp).Row
Range("f" & i) = Range("a" & i)
Range("g" & i) = Range("b" & i)
Range("h" & i) = Range("c" & i)
Range("i" & i) = Range("d" & i)
For RRow = 1 To Len(Range("d" & i))
If i <> 1 Then
Range("f" & j + RRow + 1) = Range("a" & i)
Range("g" & j + RRow + 1) = Range("b" & i)
Range("h" & j + RRow + 1) = Range("c" & i)
If Range("d" & i) <> "选项" Then
Range("i" & j + RRow + 1) = Mid(Range("d" & i), RRow, 1)
End If
End If
Next RRow
If i <> 1 Then
j = j + Len(Range("d" & i))
End If
Next i
End Sub本回答被提问者和网友采纳
相似回答