You are here:

Excel/Excel/VBA - importing several TXT file at once


When answering the question "how toExcel/VBA - importing several TXT file at once" you submitted this truly amazing code:

The sample vba procedure below will check each file in the folder C:\TEMP. For any .txt file in this folder, it will copy all data to Sheet 1 of this workbook. You should be able to adjust the code for your specific needs.

Sub copy_txt_files()
  Dim FSO As Object, Folder As Object, file As Object
  Dim copyFrom As Workbook
  Dim wksCopyTo As Worksheet, wksCopyFrom As Worksheet
  Dim rngCopyTo As Range, rngCopyFrom As Range
  Set wksCopyTo = ThisWorkbook.Sheets(1)
  Set FSO = CreateObject("Scripting.FileSystemObject")
  Set Folder = FSO.GetFolder("C:\temp")
  For Each file In Folder.Files
      If LCase(Right(file.Name, 4)) = ".txt" Then
         Set copyFrom = Workbooks.Open("C:\temp\" & file.Name)
         Set wksCopyFrom = copyFrom.Sheets(1)
         Set rngCopyFrom = wksCopyFrom.Range("a1")
         Set rngCopyFrom = wksCopyFrom.Range(rngCopyFrom, _
         Set rngCopyTo = wksCopyTo.Range("a1").SpecialCells(xlCellTypeLastCell)
         If rngCopyTo.Address <> wksCopyTo.Range("a1").Address Then
         Set rngCopyTo = wksCopyTo.Cells(rngCopyTo.Row + 1, 1)
         End If
         wksCopyTo.Paste rngCopyTo
         Application.CutCopyMode = False
         copyFrom.Close False
      End If
  Next file
End Sub

It would appear that this code works really well if the excel file (the one your loading the txt to) is in the same directory as the txt files. How can I pull from txt from a different directory.

THank you very much! this code has already saved my butt!

In my sample code, please look at the lines

  Set Folder = FSO.GetFolder("C:\temp")


  Set copyFrom = Workbooks.Open("C:\temp\" & file.Name)

As you can see, in this sample code, I assumed that we want to get .txt files from the folder c:\temp\. If you wanted to copy from .txt files in a different folder, you'd change "C:\temp" to whatever folder you want.
About Excel
This topic answers questions related to Microsoft Excel spreadsheet (or workbook) stand-alone or Mircrosoft Office Excel including Excel 2003, Excel 2007, Office 2000, and Office XP. You can get Excel help on Excel formulas(or functions), Excell macros, charting in Excel, advanced features, and the general use of Excel. This does not provide a general Excel tutorial nor the basics of using a spreadsheet. It provides specific answers to using Microsoft Excel only. If you do not see your Excel question answered in this area then please ask an Excel question here


All Answers

Answers by Expert:

Ask Experts


Stuart Resnick


I can answer questions relating to MS Excel formulas, or to programming with vba (Visual Basic for Applications) in the Excel environment. Please follow the following guidelines: your question should focus on one specific issue you want to learn. It's beyond the scope of this free service for me to create entire projects or complex vba solutions for you from scratch. You should be able to do most of the work yourself, and come here when you need help with a specific point you're stuck on. ALWAYS include a simple, concrete example illustrating what you want to learn. Explain this example in detail in the text of your question (what data is in which cells of which sheets, etc). Be very precise about the results you want, using this sample to make the logic clear. Always keep these examples SIMPLE. Never e.g. use 18 worksheets in your example if using 2 or 3 will do. Never use ranges like AI567:BB865 if using a range like A1:B3 will do. Thanks.


As a consultant, I've designed Excel tools since the 90s, working for the Federal Reserve Bank, AT&T, and (currently) Gap Inc.

My only "education" comes from 2 decades of doing spreadsheet/programming work, with major SF Bay Area corporations such as AT&T, Federal Reserve Bank, and Gap Inc.

©2017 All rights reserved.