代码之家  ›  专栏  ›  技术社区  ›  Anand

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

  •  0
  • Anand  · 技术社区  · 6 年前

    我正在尝试将文本文件转换为xls格式,但转换似乎不起作用。 虽然文件名是.cv,但是文件中的数据实际上是管道分隔的。 在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 回复  |  直到 6 年前
        1
  •  1
  •   Dan    6 年前

    我几次面对同样的问题。经过搜索,我找到了以下解决方案

    如果可以,我会重命名文件并将其扩展名更改为“.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 _
        :="|"
    

    它通常做这项工作。希望这有帮助。