Excel, Assistente de Importação, detectando tipo de arquivo errado

Excel, Assistente de Importação, detectando tipo de arquivo errado

Todo mês, tenho o privilégio de compilar arquivos diários delimitados por barras verticais em uma pasta de trabalho mensal do Excel. Eu uso o assistente de importação para converter os arquivos de texto em planilhas na pasta de trabalho. Abro todos os 30 arquivos de uma vez e passo pelas instruções do assistente para cada arquivo. O assistente geralmente está correto ao detectar que os arquivos são delimitados por barras verticais. Mas uma vez, e apenas uma vez, em cada lote de arquivos, ele altera o tipo de arquivo de “Delimitado” para “Largura Fixa”. Cada arquivo tem o mesmo formato, Data|Depto|Conta|Tipo|Valor, etc…. Cada campo contém dados semelhantes em todos os arquivos. Todas as datas têm 8 caracteres; Todos os departamentos têm 5 caracteres; todas as contas têm 6 caracteres; etc….

Por que o Excel de repente não reconhece o formato delimitado do arquivo?
Por que apenas 1 arquivo do grupo?

É ter certeza de que estou prestando atenção?

Isso acontece no Excel 2013 e no Excel 365 Pro (MSO 16.0)

Responder1

Se você entende VBA, pode usar a seguinte macro, que solicitará um nome de arquivo e forçará a importação como delimitado por barras verticais:

Sub Test()
    Dim Filter As String, Title As String
    Dim FilterIndex As Integer
    Dim FileName As Variant

    ' File filters
    Filter = "Text Files (*.dat),*.dat," & "All Files (*.*),*.*"

    ' Default Filter to *.*
    FilterIndex = 3

    ' Set Dialog Caption
    Title = "Select a File to Open"

    ' Select Start Drive & Path
    ChDrive ("G:")
    ChDir ("G:\Scot\MS Excel")

    With Application
        ' Set File Name to selected File
        FileName = .GetOpenFilename(Filter, FilterIndex, Title)
        ' Reset Start Drive/Path
        ChDrive (Left(.DefaultFilePath, 1))
        ChDir (.DefaultFilePath)
    End With

    ' Exit on Cancel
    If FileName = False Then
        MsgBox "No file was selected."
        Exit Sub
    End If

    ' Import File
    With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & FileName, Destination:=Range("A1"))
        .TextFileParseType = xlDelimited
        .TextFileOtherDelimiter = "|"
        .Refresh BackgroundQuery:=False
    End With
End Sub

Insira seus próprios valores para o código abaixo de "Selecionar Start Drive & Path".

fonte

informação relacionada