Tim_Excel_
Well-known Member
- Joined
- Jul 12, 2016
- Messages
- 512
Hi forum,
I have a vba module with which I want to open .CSV files delimited by the | character. I couldn't get it to work, so I instead worked around it by having excel open a nonsense file (.cvs, but it does work). Since this isn't very handy for the user, I'd like to look at it again and open .CSV files instead.
I came across this code:
but it doesn't seem to open it delimited by the | character, plus it's being opened INSIDE the already opened workbook.
The code I have now:
this works perfectly with nonsense files, but refuses to work with .CSV files.
I have a vba module with which I want to open .CSV files delimited by the | character. I couldn't get it to work, so I instead worked around it by having excel open a nonsense file (.cvs, but it does work). Since this isn't very handy for the user, I'd like to look at it again and open .CSV files instead.
I came across this code:
Code:
<code>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
</code>
The code I have now:
Code:
Workbooks.OpenText FileName:="" & inpt & "", _
Origin:=65000, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False _
, Comma:=False, Space:=False, Other:=True, OtherChar:="|", FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 2), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1)), _
TrailingMinusNumbers:=True