显然这个问题已被多次提出过.正常程序:
Workbooks.Open (ActiveWorkbook.Path & "\Test.csv")
不会正确解析csv(在1个单元格中有很多行)
thx到Lernkurve我可以使用他的功能来做对:打开分号分隔的CSV文件
Sub ImportCSVFile(filepath As String)
Dim line As String
Dim arrayOfElements
Dim linenumber As Integer
Dim elementnumber As Integer
Dim element As Variant
linenumber = 0
elementnumber = 0
Open filepath For Input As #1 ' Open file for input
Do While Not EOF(1) ' Loop until end of file
linenumber = linenumber + 1
Line Input #1, line
arrayOfElements = Split(line, ";")
elementnumber = 0
For Each element In arrayOfElements
elementnumber = elementnumber + 1
Cells(linenumber, elementnumber).Value = element
Next
Loop
Close #1 ' Close file.
End Sub
Run Code Online (Sandbox Code Playgroud)
然而这并不快(我有数千列的文件),我的问题是:
有没有本地方法在excel中打开csv并正确解析?
Workbooks.Open 确实也可以。
Workbooks.Open ActiveWorkbook.Path & "\Temp.csv", Local:=True
这行之有效/是必需的,因为我在德国使用Excel,而excel在默认情况下却使用“,”来分隔.csv,因为我使用的是Windows的英文版。即使您使用下面的代码,excel也会强制使用“,”分隔符。
Workbooks.Open ActiveWorkbook.Path & "\Test.csv", , , 6, , , , , ";"
和Workbooks.Open ActiveWorkbook.Path & "\Temp.csv", , , 4+此变量不起作用(!)
如果它们被Local参数阻止,为什么它们甚至还有delimiter参数?这根本没有意义。但现在可以了。
| 归档时间: |
|
| 查看次数: |
78737 次 |
| 最近记录: |