将管道分隔的文本文件转换为xls

时间:2018-06-21 19:51:50

标签: excel-vba vba excel

我正在尝试将文本文件转换为xls格式,但是该转换似乎不起作用。 尽管文件名是.csv,但文件中的数据实际上是管道分隔的 在Excel中打开后,转换后的文件将在第1列中显示类似的文字,但未删除定界符。

Private Sub Workbook_Open()

    Folder = ActiveWorkbook.Path
    Application.DisplayAlerts = False
    CurrentDate = Format(Date, "MM-dd-yyyy")

    Workbooks.Open Filename:=Folder & "\marginRiskSummary631_" & CurrentDate & ".csv", Delimiter:="|", Format:=6
    ActiveWorkbook.SaveAs Filename:=Folder & "\GS_marginRiskSummary631.xls", FileFormat:=56, CreateBackup:=False, AccessMode:=xlExclusive, ConflictResolution:=Excel.XlSaveConflictResolution.xlLocalSessionChanges
    ActiveWorkbook.Close (True)
End Sub

有人可以帮助我正确进行转换吗?

1 个答案:

答案 0 :(得分:1)

我前几次遇到同样的问题。搜索后,我找到了以下解决方案

在可以的情况下,我将文件重命名并将其扩展名更改为“ .txt”,然后它可以与您发布的代码一起使用。 如果我不能重命名,那么我将使用以下代码进行转换(仅在workbook.open方法之后)

ActiveWorkbook.Worksheets(1).Range("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
    Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
    :="|"

通常可以完成工作。希望这可以帮助。

相关问题