Excel,导入向导,检测错误的文件类型

Excel,导入向导,检测错误的文件类型

每个月,我都有权利将每日的竖线分隔文件编译成每月的 Excel 工作簿。我使用导入向导将文本文件转换为工作簿中的工作表。我一次打开所有 30 个文件,并按照向导的提示对每个文件进行操作。向导通常可以正确地检测到文件是否是竖线分隔的。但是,在每一批文件中,只有一次,它会将文件类型从“分隔”更改为“固定宽度”。每个文件的格式都相同,日期|部门|帐户|类型|金额等……所有文件中的每个字段都包含类似的数据。所有日期都是 8 个字符;所有部门都是 5 个字符;所有帐户都是 6 个字符;等等……

为什么 Excel 突然无法识别文件的分隔格式?
为什么一堆文件中只有 1 个文件?

这是为了确保我能集中注意力吗?

Excel 2013 和 Excel 365 Pro (MSO 16.0) 中都会发生这种情况

答案1

如果您了解 VBA,则可以使用以下宏,它将要求输入文件名并强制将其以竖线分隔的形式导入:

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

在“选择启动驱动器和路径”下方输入您自己的代码值。

来源

相关内容