'sheet1源数据,sheet2输出,自己修改 Option Explicit Sub test() Dim i, j, arr, n, m arr = Sheets("sheet1").Range("a1:b" & Sheets("sheet1").[b65536].End(xlUp).Row) With Sheets("sheet2") .Cells.ClearContents For i = 1 To UBound(arr, 1) If Len(arr(i, 1)) > 0 Then n = n + 1 .Cells(n, 5) = arr(i, 1) For j = i + 1 To UBound(arr, 1) m = m + 1 .Cells(n, m + 5) = arr(j, 2) If Len(arr(j, 2)) = 0 Then m = 0: Exit For Next End If Next End With End Sub