'源数据[a:b]列,从第二行开始,输出[d:e]列 Option Explicit Sub test() Dim arr, i, n, brr, t, j arr = Range("a2:b" & Cells(Rows.Count, "b").End(xlUp).Row) ReDim brr(1 To Rows.Count, 1 To 2) For i = 1 To UBound(arr, 1) If InStr(arr(i, 2), ";") Then t = Split(arr(i, 2), ";") For j = 0 To UBound(t) n = n + 1: brr(n, 1) = arr(i, 1): brr(n, 2) = t(j) Next Else n = n + 1: brr(n, 1) = arr(i, 1): brr(n, 2) = arr(i, 2) End If Next With [d1] .Resize(Rows.Count, 2).ClearContents .Offset(1).Resize(n, 2) = brr .Resize(, 2) = Split("标识 栗子") End With End Sub