根据列将单个Excel行拆分为多个

时间:2016-02-23 16:42:56

标签: excel vbe

我需要根据单行创建多个Excel行。例如,我目前每个人员都有一行,并且有几十列已经分组了#34;可以这么说。所以说列K是它自己的组,然后列M,N,O是一个组,P,Q,R,是一个组等。我需要那一行成为多行 - 每列一行一行。所以目前的情况是:

1 | Smith, John | Column K | Column M | Column N | Column O | Column P | Column Q| Column R

我需要成为:

1 | Smith, John | Column K

2 | Smith, John | Blank | Column M | Column N | Column O

3 | Smith, John | Blank |   Blank  |  Blank   | Blank    | Column P | Column Q | Column R

1 个答案:

答案 0 :(得分:0)

这是一个解决方案。你可能会更聪明地做数学。我现在不能。 ;)

Sub splitRows()

Dim i As Integer

With Sheets(1)
For i = 2 To (.UsedRange.Columns.Count / 3)

.Range(Cells(i, 1), Cells(i, 3)).Value = .Range(Cells(1, 1), Cells(1, 3)).Value
.Range(Cells(i, (i - 1) * 3 + 1), Cells(i, (i - 1) * 3 + 3)).Value = .Range(Cells(1, (i - 1) * 3 + 1), Cells(1, (i - 1) * 3 + 3)).Value

Next

End With

End Sub

这仅适用于总是有三列组的工作表。如果没有,则必须更改.UsedRange.Columns.Count / 3部分。

干杯。