Excel: transformando uma pasta indexada com muitas colunas em duas colunas

0

Eu tenho uma planilha do excel com linhas como esta:

Fruit     | Apple  | Banana | Grape | Peach
Vegetable | Cabbage| Lettuce| Carrot|

e gostaria que uma saída de duas colunas duplicasse o índice (primeira coluna):

Fruit     | Apple
Fruit     | Banana
Fruit     | Grape
Fruit     | Peach
Vegetable | Cabbage
Vegetable | Lettuce
Vegetable | Carrot

A simplicidade de uso é mais importante que a eficiência, pois os dados são pequenos e os usuários são inexperientes. Obrigado

    
por pywiz13 30.07.2015 / 13:18

1 resposta

2

Se tivermos isso em Folha1 :

eexecuteestamacrocurta:

SubReOrganize()Dimsh1AsWorksheet,sh2AsWorksheetSetsh1=Sheets("Sheet1")
    Set sh2 = Sheets("Sheet2")
    Dim N As Long, M As Long, i As Long, j As Long, K As Long
    Dim t1 As String, t2 As String
    N = sh1.Cells(Rows.Count, "A").End(xlUp).Row
    K = 1

    For i = 1 To N
        t1 = sh1.Cells(i, 1).Value
        M = sh1.Cells(i, Columns.Count).End(xlToLeft).Column
        For j = 2 To M
            sh2.Cells(K, 1).Value = t1
            sh2.Cells(K, 2).Value = sh1.Cells(i, j)
            K = K + 1
        Next j
    Next i
End Sub

Receberemos isso em Folha2 :

    
por 30.07.2015 / 14:58