excel中的一个大列到多个列和行

时间:2017-05-30 20:59:46

标签: excel excel-vba excel-formula multiple-columns raw-data vba

我的数据目前是来自不同人的5000行联系信息;但每个人提供的信息量不一致,所以目前的数据如下: 示例图1(注意:列' A'不存在,只是数字代表的一个示例,以便澄清)

Example Image 1

我用分号分隔每个人。如何将这一大列转换为在另一张纸上堆叠在一起的多个列,类似于下图:

理想结果表1

Ideal Results Sheet 1

1 个答案:

答案 0 :(得分:1)

以下是针对您的问题的VBA解决方案。

Sub Demo()
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual

    Dim lastrow, i, rowNum, colnum As Integer
    Dim srcSht, destSht As Worksheet

    Set srcSht = ThisWorkbook.Sheets("Sheet3")
    Set destSht = ThisWorkbook.Sheets("Sheet5")

    lastrow = srcSht.Cells(Rows.Count, "B").End(xlUp).Row
    rowNum = 2
    colnum = 1

    For i = 1 To lastrow
        If srcSht.Cells(i, 2).Value = ";" Then
            rowNum = rowNum + 1
            colnum = 1
        Else
            destSht.Cells(rowNum, colnum).Value = srcSht.Cells(i, 2).Value
            colnum = colnum + 1
        End If
    Next i

    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
End Sub