转移细胞直到参数

时间:2015-04-08 12:33:04

标签: excel excel-vba vba

我试图转移列中的所有单元格" Item"直到它遇到深度1.循环+10000单元

Item Depth
A   1
B   2
C   2
D   3
E   4
F   5
G   1
H   2
I   2
J   1
K   2

我需要这个结果:

Item Depth                      
A   1   A   B   C   D   E   F
B   2                       
C   2                       
D   3                       
E   4                       
F   5                       
G   1   G   H   I           
H   2                       
I   2                       
J   1   J   K               
K   2                       

我认为VBA更适合这项工作,但我不知道从哪里开始。

2 个答案:

答案 0 :(得分:0)

如果您首先突出显示A-K,则此功能将起作用,因此请从A2到A12中选择。

Sub Transpose()

Dim currentCell As Range
Dim outputCell As Range

For Each currentCell In Selection

    If currentCell.Offset(0, 1).Value = 1 Then
        Set outputCell = currentCell.Offset(0, 2)
    Else
        Set outputCell = outputCell.Offset(0, 1)
    End If

    outputCell.Value = currentCell.Value

Next currentCell

End Sub

答案 1 :(得分:0)

假设Item在A1中,如果在ColumnB的第一个空白单元格中插入了1,则可以使用公式:

=IFERROR(IF(AND($B2=1,COLUMN()<3+MATCH($B2,$B3:$B11000,0)),OFFSET(B2,COLUMN()-3,2-COLUMN()),""),"")

向上和向下复制以适应,直到整个列为空。

相关问题