从单元格中将名称和百分比分开,二者的数量均可变

时间:2018-12-17 21:00:51

标签: excel vba

我正在寻找一种方法,可以将一个单元格中的所有名称和百分比剪切并粘贴到下面一行中的空白单元格中,然后再移动到下一个单元格。每行的名称和百分比的数量会有所不同,但是始终采用相同的格式。

例如汤姆·沃尔顿(75%);乔什·哈格里夫斯(25%);詹姆斯·史密斯(42%);格雷厄姆·约翰逊(56%)

我想对列中的每一行执行此操作。

之前的屏幕截图。

enter image description here

所需的输出。

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

Option Explicit

Sub Parse()

Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
Dim LR1 As Long, LR2 As Long, i As Long, x As Long, Arr

LR1 = ws.Range("A" & ws.Rows.Count).End(xlUp).Row

For i = 2 To LR1
    Arr = Split(ws.Range("B" & i), "; ")

    For x = LBound(Arr) To UBound(Arr)
        LR2 = ws.Range("E" & ws.Rows.Count).End(xlUp).Offset(1).Row
        ws.Range("E" & LR2) = Arr(x)
        ws.Range("D" & LR2).Value = ws.Range("A" & i).Value
    Next x
Next i

End Sub

输入/输出以下任意排名的示例

enter image description here