使用vba将隐藏字符的csv文件导入Excel

在这个论坛的帮助下已经能够解决大部分问题,但是这个让我陷入困境。

我有一个逗号分隔的csv文件(“xxxx”,“zzz”),在文件中隐藏了chr(10)chr(13) 。 如果我使用脚本来replace这两个字符,我失去了loggingchr(10)的结尾,所以只能导入为一条logging。

在记事本中,文件显示完美 – 每行一个logging。 如果我作为一个Excel文件打开它是好的,只有当我作为一个CSV分隔文件导入

感谢其他贡献者,下面是我一直在使用的。

理想情况下,我想要做的是:

  1. selectcsv文件
  2. 复制文件以保持原始的<<<额外function
  3. 清理所有会影响导入的隐藏字符
  4. 然后导入

 Private Sub CSV_ImportRepl() Dim strFile As String Dim strBuffer As String Dim ff As Integer Dim strFileName As String Dim ws As Worksheet 'ENTRIES CSV FILE ---------------------------------- ' ---open file ---------- strFile = Application.GetOpenFilename("Text Files (*.csv),*.*", _ , "SELECT ENTRIES csv FILE") strFileName = strFile MsgBox strFileName ' ---start cleaning file ---------- strBuffer = Space(FileLen(strFile)) ff = FreeFile Open strFile For Binary Access Read As #ff Get #ff, , strBuffer Close #ff strBuffer = Replace(strBuffer, Chr(13), "") Kill strFile Open strFile For Binary Access Write As #ff Put #ff, , strBuffer Close #ff ' --- clear contents & import ---------- Sheets("Entries").Cells.ClearContents Set ws = ActiveWorkbook.Sheets("Entries") 'set to current worksheet name strFile = strFileName With ws.QueryTables.Add(Connection:="TEXT;" & strFile, _ Destination:=ws.Range("A1")) .TextFileParseType = xlDelimited .TextFileCommaDelimiter = True .Refresh End With End Sub 

非常感激任何的帮助。

 Sub opencsv() strFile = Application.GetOpenFilename("Text Files (*.csv),*.*", , "Please selec text file...") strFileName = strFile Set src = Workbooks.Open(Filename:=strFile, Local:=True) Cells.Copy ThisWorkbook.Activate Sheets("Entries").Activate Range("A1").Select ActiveSheet.Paste Application.CutCopyMode = False src.Close End Sub