![](/img/trans.png)
[英]Excel: Split rows of table in multiple rows based on different cell values
[英]Split a cell into multiple rows based on line break and formats data elements
我尝试了几种不同的方法,但无法成功地使任何工作正常进行。 数据集很小(10-25 行),但我必须运行很多数据集,这会浪费时间。 原始数据如下所示:
output 需要如下所示:
Sub x()
Dim v, vOut(), i As Long, j As Long, k As Long, w
v = Sheet8.Range("A1").CurrentRegion.Value
ReDim vOut(1 To UBound(v, 1) * 10, 1 To 2)
For i = LBound(v, 1) To UBound(v, 1)
w = Split(v(i, 2), Chr(10))
For j = LBound(w) To UBound(w)
k = k + 1
vOut(k, 1) = v(i, 1)
vOut(k, 2) = w(j)
Next j
Next i
Sheet9.Range("A1").Resize(k, 2) = vOut
End Sub
我已经成功地将行分开,但现在我对如何有效地自动化格式化的 rest 有点迷茫。 我可以通过一堆拆分来做到这一点,但感觉可能有更好的方法,我的知识有限。 我的 VBA 技能是自学的并且非常初级,所以如果有人可以帮助解释解决方案,将不胜感激! 谢谢!
凌乱,但最终想通了:
Sub VisitInfo()
Dim v, vOut(), i As Long, j As Long, k As Long, w, z
v = Sheet8.Range("A1").CurrentRegion.Value
ReDim vOut(1 To UBound(v, 1) * 10, 1 To 4)
For i = LBound(v, 1) To UBound(v, 1)
w = Split(v(i, 2), Chr(10))
For j = LBound(w) To UBound(w)
k = k + 1
vOut(k, 1) = v(i, 1)
z = Split(w(j), "]")
a = Split(w(j), "] ")
c = Split(a(1), " o")
b = Split(w(j), "=")
vOut(k, 2) = (z(0) + "]")
vOut(k, 3) = (c(0))
vOut(k, 4) = LTrim(b(1))
Next j
Next i
Sheet3.Range("A2").Resize(k, 4) = vOut
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.