Excel: altera a origem de dados com macro

1

Estou usando um arquivo CSV (gerado por um programa Party Party) como uma fonte de dados externa e gostaria de alterar seu caminho a partir de uma macro ... Como posso fazer isso?

Outra resposta aceitável para o meu problema seria uma forma de especificar um caminho relativo ao arquivo excel - não encontrei como - dado que no meu caso, tanto o csv quanto o xls estão no mesmo diretório.

    
por gregseth 02.02.2012 / 21:57

1 resposta

1
Sub Import()
    Dim FilePath As String
    FilePath = "TEXT;C:\directory\" & Cells(1, 1).Value
    ActiveWorkbook.Worksheets.Add
    With ActiveSheet.QueryTables.Add(Connection:=FilePath, Destination:=Range("$A$1"))
        .Name = "Book1"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 437
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With

End Sub

Isso criará uma nova planilha com os dados quando você colocar o arquivo (book3.csv por exemplo) na planilha1 A1; você muda o diretório C: \ para o diretório em que sua entrada existe e você pode alterar o intervalo de saída na linha 5 "Range"

Além disso, a linha 3 "Células (1,1) indica a célula de entrada, portanto, você pode alterar isso da Folha1 A1, se desejar. É necessário indicar a extensão do arquivo na célula de referência; caso contrário, ele não saberá a qual arquivo Basta executar essa macro e você obterá uma nova planilha com os dados de destino.Se você precisar de uma nova pasta de trabalho ou para inseri-la em uma planilha existente, avise-nos.

Além disso, se você observar as propriedades, será um arquivo delimitado por vírgula, ou apenas poderá gravar sua própria macro (guia desenvolvedor - > macro de registro) e inserir os comandos do tipo FilePath na parte superior e alterar o comando de conexão

    
por 03.02.2012 / 14:06