Transpor colunas em linhas durante a importação para o Excel

0

Eu tenho um arquivo de texto com muito mais colunas do que o permitido no Excel, então gostaria de transpor os dados para as colunas enquanto importo para o Excel . Alguma idéia de como posso fazer isso?

    
por PJH 09.11.2011 / 20:03

1 resposta

1

EDIT encontrou uma maneira melhor, portanto, o código atualizado

Provavelmente, é melhor escrever uma macro VBA para fazer a importação.

Aqui está uma iniciação para você. Note que precisará de alguns ajustes para se adequar aos seus dados.

Sub ImportTranspose()
    Dim fso As New FileSystemObject
    Dim txtFile As TextStream
    Dim col As Long
    Dim dat As Variant
    Dim sh As Worksheet

    Set sh = ActiveSheet
    Set txtFile = fso.OpenTextFile("C:\Tmp\SampleData.txt")
    col = 1
    Do While Not txtFile.AtEndOfStream
        dat = Application.Transpose(Application.Index(Split(txtFile.ReadLine, ","), 1, 0))
        sh.Cells(1, col).Resize(UBound(dat), 1) = dat
        col = col + 1
    Loop

CleanUp:
    On Error Resume Next
    txtFile.Close
    Set txtFile = Nothing
    Set fso = Nothing
End Sub

Notas:

  1. Ele assume que todas as linhas no arquivo de dados são separadas por vírgula
  2. Não inclui tratamento de erros
  3. Coloca os dados na planilha ativa, iniciando na célula A1 e sobregrava todos os dados existentes
  4. Nome e localização do arquivo codificado - altere para se adequar ou adicione um diálogo GetFile
por 10.11.2011 / 06:23