Trabalhando uma macro em um sub maior

1

Estou tentando trabalhar com uma macro de uso único em Do Until Loop, em que a macro fará um loop pelos arquivos da minha pasta. Estou tendo problemas para editar a macro para trabalhar com essa finalidade. Eu sei que preciso ter; Variável para o caminho do arquivo, Variável para o prefixo do arquivo, incorporar minha contagem e o tipo de arquivo ".dat" integrado ao script. Quaisquer dicas para sintaxe ou simplificação da macro volumosa seriam muito apreciadas.

Sub CSV_Import()
Dim ws As Worksheet, strFile As String

Set ws = ActiveWorkbook.Sheets("Sheet1")
'set to current worksheet name

strFile = Application.GetOpenFilename("All Files (*.*),*.*", , "Please selec text file...")

With ws.QueryTables.Add(Connection:="TEXT;" & strFile, Destination:=ws.Range("A1"))
 .TextFileParseType = xlDelimited
 .TextFileCommaDelimiter = True
 .Refresh
End With
End Sub

Obrigado pelo seu tempo.

    
por Workinatwork 20.02.2017 / 21:55

1 resposta

0

Você pode tentar envolver o código atual em um loop como este usando Dir . Não consegui testar o ws.queryTables.Add bit, mas o Dir bit faz um loop apropriadamente através dos arquivos na pasta especificada. Isso também pressupõe que você deseja todos os arquivos .dat na pasta especificada.

Sub CSV_Import()
Dim ws As Worksheet, strFile As String

Set ws = ActiveWorkbook.Sheets("Sheet1")
'set to current worksheet name

strFile = Dir("\path\to\file\*.dat")
Do While Len(strFile) > 0
    With ws.QueryTables.Add(Connection:="TEXT;" & strFile, Destination:=ws.Range("A1"))
        .TextFileParseType = xlDelimited
        .TextFileCommaDelimiter = True
        .Refresh
    End With
    'Debug.Print strFile
    strFile = Dir
Loop
End Sub
    
por 21.02.2017 / 20:08