Excel, Asistente de importación, detectando un tipo de archivo incorrecto

Excel, Asistente de importación, detectando un tipo de archivo incorrecto

Cada mes, tengo el privilegio de compilar archivos diarios delimitados por barras verticales en un libro de Excel mensual. Utilizo el asistente de importación para convertir los archivos de texto en hojas de trabajo en el libro. Abro los 30 archivos a la vez y sigo las indicaciones del asistente para cada archivo. El asistente suele ser correcto al detectar que los archivos están delimitados por barras verticales. Pero una vez, y sólo una vez, de cada lote de archivos, cambia el tipo de archivo de "Delimitado" a "Ancho fijo". Cada archivo tiene el mismo formato, Fecha|Depto|Cuenta|Tipo|Monto, etc…. Cada campo contiene datos similares en todos los archivos. Todas las fechas tienen 8 caracteres; Todos los departamentos tienen 5 caracteres; todas las Cuentas tienen 6 caracteres; etc….

¿Por qué Excel de repente no reconoce el formato delimitado del archivo?
¿Por qué sólo 1 archivo del grupo?

¿Es asegurarse de que estoy prestando atención?

Esto sucede tanto en Excel 2013 como en Excel 365 Pro (MSO 16.0)

Respuesta1

Si comprende VBA, puede utilizar la siguiente macro, que le solicitará un nombre de archivo y forzará su importación delimitada por barras verticales:

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

Ingrese sus propios valores para el código debajo de "Seleccione Iniciar unidad y ruta".

fuente

información relacionada