Sub cal() Sheets("sheet1").Select '选中表1 Row = 0 For col = 1 To 23 '23是W列的数字形式,如果后面还有,作相应改动。 i = 1 Row = Row + 1 Do While Sheets("sheet1").Cells(i + 2, col) <> "" '循环直到当前列的倒数第3个数字 j = i + 1 Do While Sheets("sheet1").Cells(j + 1, col) <> "" '循环直到当前列的倒数第2个数字 k = j + 1 Do While Sheets("sheet1").Cells(k, col) <> "" '循环直到当前列的最后1个数字 Sheets("sheet2").Cells(Row, 3) = Sheets("sheet1").Cells(i, col) Sheets("sheet2").Cells(Row, 2) = Sheets("sheet1").Cells(j, col) Sheets("sheet2").Cells(Row, 1) = Sheets("sheet1").Cells(k, col) k = k + 1 Row = Row + 1 Loop j = j + 1 Loop i = i + 1 Loop Next End Sub