在这个论坛的帮助下,已经能够解决大多数问题,但这让我陷入了困境。
我有一个隐藏在文件中的逗号分隔csv
文件(“xxxx”,“zzz”,) 。如果我使用脚本来替换这两个字符,我会丢失记录的结尾, 因此只能作为一条记录导入。chr(10)
chr(13)
chr(10)
在记事本中,文件显示完美 - 每行一条记录。如果我作为 excel 文件打开就可以了,只有当我作为 csv 分隔文件导入时
感谢其他贡献者,以下是我一直在使用的。
理想情况下,我想做的是:
- 选择 csv 文件
- 复制文件以保留原始 <<< 额外功能
- 清除所有会影响导入的隐藏字符
- 然后导入
-
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
非常感激任何的帮助。