vba excel中的父子关系

时间:2017-08-28 15:14:03

标签: excel-vba vba excel

我想写一个代码,我有以下数据

0   a  
1   b  
1   c  
2   d  
2   e  
2   f  
3   g  
3   h  
3   i  
2   j  
3   k  
0   l  
1   m  

第一列中的数字是父ID。所以,'a'是'b'和's'的父母。 'C'。类似地,c是'd','e','f'的父亲。
'l'是'm'的父母。

我想要以下格式输出。

Parent Child   
a   b  
a   c    
c   d    
c   e    
c   f  
f   g  
f   h  
f   i  
c   j  
j   k  
l   m  

input output picture 我需要在VBA中写这个。
有人可以指导。

1 个答案:

答案 0 :(得分:0)

我不明白你的例子。为什么m不是孩子。

Sub test()
    Dim vDB, vR()
    Dim i As Long, j As Long, n As Long

    vDB = Range("a3", Range("b" & Rows.Count).End(xlUp))

    For i = 1 To UBound(vDB, 1)
        For j = 1 To UBound(vDB, 1)
            If vDB(i, 1) = vDB(j, 1) - 1 Then
                n = n + 1
                ReDim Preserve vR(1 To 2, 1 To n)
                vR(1, n) = vDB(i, 2)
                vR(2, n) = vDB(j, 2)
            End If
        Next
    Next i
    Range("d3").Resize(n, 2) = WorksheetFunction.Transpose(vR)
End Sub