Forum Discussion
Excel
May 30, 2022Iron Contributor
Query related to import text file with the help of VBA
Hello Everyone, I try a VBA code to import text file to excel and it works. like - But i want to import different text file in same sheets. So, what should i write in VBA code? ...
- May 30, 2022
Why didn't you mention that at the beginning? It was not apparent from your screenshot.
Public Sub ImportTextFile() Dim TargetSheet As Worksheet Dim NewRow As Long Dim TextFile As Workbook Dim OpenFiles() As Variant Dim i As Integer Dim n As Long Set TargetSheet = ThisWorkbook.Worksheets.Add ' or ActiveSheet NewRow = 1 OpenFiles = GetFiles() Application.ScreenUpdating = False For i = 1 To UBound(OpenFiles) Set TextFile = Workbooks.Open(OpenFiles(i)) With TextFile.Sheets(1).Range("A1").CurrentRegion.Offset(n) .Copy Destination:=TargetSheet.Range("A" & NewRow) NewRow = NewRow + .Rows.Count - n End With If i = 1 Then n = 1 TextFile.Close Next i Application.CutCopyMode = False Application.ScreenUpdating = True End Sub Public Function GetFiles() As Variant GetFiles = Application.GetOpenFilename(Title:="Select File(s) to Import", MultiSelect:=True) End Function
Riny_van_Eekelen
May 30, 2022Platinum Contributor
Excel Unless you are desperate to learn VBA, I would recommend that you move into PowerQuery, which has a built-in connector that allows you to get data from multiple files in a folder. And it puts everything in one single table.
Excel
May 30, 2022Iron Contributor
Yes sir, but i am practicing in VBA code.
Sir, please help me to import import different text file in same sheet with the help of VBA code?
Sir, please help me to import import different text file in same sheet with the help of VBA code?
- HansVogelaarMay 30, 2022MVP
Do you want to copy the contents of all text files into one sheet, one below the other? If so:
Public Sub ImportTextFile() Dim TargetSheet As Worksheet Dim NewRow As Long Dim TextFile As Workbook Dim OpenFiles() As Variant Dim i As Integer Set TargetSheet = ThisWorkbook.Worksheets.Add ' or ActiveSheet NewRow = 1 OpenFiles = GetFiles() Application.ScreenUpdating = False For i = 1 To UBound(OpenFiles) Set TextFile = Workbooks.Open(OpenFiles(i)) With TextFile.Sheets(1).Range("A1").CurrentRegion .Copy Destination:=TargetSheet.Range("A" & NewRow) NewRow = NewRow + .Rows.Count End With TextFile.Close Next i Application.CutCopyMode = False Application.ScreenUpdating = True End Sub Public Function GetFiles() As Variant GetFiles = Application.GetOpenFilename(Title:="Select File(s) to Import", MultiSelect:=True) End Function
- ExcelMay 30, 2022Iron Contributor
- HansVogelaarMay 30, 2022MVP
Why didn't you mention that at the beginning? It was not apparent from your screenshot.
Public Sub ImportTextFile() Dim TargetSheet As Worksheet Dim NewRow As Long Dim TextFile As Workbook Dim OpenFiles() As Variant Dim i As Integer Dim n As Long Set TargetSheet = ThisWorkbook.Worksheets.Add ' or ActiveSheet NewRow = 1 OpenFiles = GetFiles() Application.ScreenUpdating = False For i = 1 To UBound(OpenFiles) Set TextFile = Workbooks.Open(OpenFiles(i)) With TextFile.Sheets(1).Range("A1").CurrentRegion.Offset(n) .Copy Destination:=TargetSheet.Range("A" & NewRow) NewRow = NewRow + .Rows.Count - n End With If i = 1 Then n = 1 TextFile.Close Next i Application.CutCopyMode = False Application.ScreenUpdating = True End Sub Public Function GetFiles() As Variant GetFiles = Application.GetOpenFilename(Title:="Select File(s) to Import", MultiSelect:=True) End Function
- Riny_van_EekelenMay 30, 2022Platinum Contributor
Excel Sorry, I can't as I have moved away from VBA. Rarely use it.