繁体   English   中英

根据换行符将单元格拆分为多行并格式化数据元素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM