You are on page 1of 3

12/22/2015

excel ­ Reading data from text file and delimiting ­ Stack Overflow
 

 

sign up

log in

tour

help 

 

Sign up   ×

Stack Overflow is a community of 4.7 million programmers, just like you, helping each other. Join them; it only takes a minute:

Reading data from text file and delimiting

I have an Excel 2010 spreadsheet, and I am reading in information from a .txt file (and another .xls file in future).
This text file has 3 elements per row; firtname, surname and Job title, and each element is separated by a comma. I have the data reading
and pasting into Excel, however each row is pasted into the one cell. I am looking to paste each element into different columns. I know that
I should try and delimit, but I just can't figure out the syntax.
My question is how do I separate each element and paste it into it's own cell? I currently use commas to separate each element on my .txt
file, but future files might use tabs, full­stops, semi­colons etc. How do I extend it so all bases are covered?
Below is my code, and under my code is a sample of dummy data
Sub FetchDataFromTextFile()
    Dim i As Long
    Dim LineText As String
    Open "C:\mytxtfile.txt" For Input As #24
    i = 2
    While Not EOF(24)
        Line Input #24, LineText 
        ActiveSheet.Cells(i, 2).Value = LineText 
        P = Split(Record, ",")
        i = i + 1
    Wend
    Close #24
End Sub

John, Doe, Boss
Johnny, Steele, Manager
Jane, Smith, Employee
NOTE: Competant in other programming languages, however not done VB in about 6 or 7 years. I can never seem to wrap my head around
VB Syntax, so please treat me like a novice for this.
excel   vba   excel­vba   text­files   delimited­text
edited Oct 1 '13 at 15:58

asked May 21 '13 at 10:44

Meehow
21.3k

11

J.H.
48

72

25

1

1

6

1 Answer

Sub FetchDataFromTextFile()
    Dim i As Long
    Dim LineText As String
    Open "C:\mytxtfile.txt" For Input As #24
    i = 2
    While Not EOF(24)
        Line Input #24, LineText 
            Dim arr 
            arr = Split(CStr(LineText), ", ")
            For j = 1 To  
                ActiveSheet.Cells(i, j).Value = arr(j ‐ 1)
            Next j 
            i = i + 1
    Wend
    Close #24
End Sub

For different delimiters, make use of the answers in here
http://stackoverflow.com/questions/16668090/reading­data­from­text­file­and­delimiting

1/3

3k 11 http://stackoverflow.12/22/2015 excel ­ Reading data from text file and delimiting ­ Stack Overflow For a detailed walk­through see read txt files from VBA edited Sep 16 '14 at 16:50 answered May 21 '13 at 11:09 Meehow 21.com/questions/16668090/reading­data­from­text­file­and­delimiting 48 72 2/3 .

 C#. or complex formula development. frequent  info  top users http://stackoverflow. PowerShell.com/questions/16668090/reading­data­from­text­file­and­delimiting 3/3 .12/22/2015 excel ­ Reading data from text file and delimiting ­ Stack Overflow 5k followers.NET. 81k questions rss Only for questions on programming against Excel objects or files. VSTO. General help regarding MS Excel for single worksheet functions is available at Super User. and other programming related tags and questions if applicable. You may combine the Excel tag with VBA. OLE automation. VB.