Tip: andere talen zijn Google-Vertaald. Je kunt het English versie van deze link.
Log in
x
or
x
x
Registreren
x

or

Hoe kan ik meerdere tekstbestanden uit een map in één werkblad importeren?

Voor gevallen, hier heb je een map met meerdere tekstbestanden, wat je wilt doen is om deze tekstbestanden te importeren in een enkel werkblad zoals hieronder te zien is. In plaats van de tekstbestanden één voor één te kopiëren, zijn er trucs om snel de tekstbestanden uit de ene map in een blad te importeren?

Importeer meerdere tekstbestanden van de ene map naar een enkel blad met VBA

Importeer tekstbestand naar de actieve cel met Kutools voor Excel goed idee3


goedBereik exporteren naar bestand

Kutools voor Excel 's Export Range naar File-functie kan een bereik exporteren of opslaan als een afzonderlijk bestand als
werkmap, pdf, tekst, csv of tekst.
Klik op Enterprise > Import / Export > Bereik exporteren naar bestand.
doc export celbereik naar bestand
Tabblad Office Schakel bewerken en browsen met tabbladen in Office in en maak uw werk veel eenvoudiger ...
Kutools voor Excel brengt 300 geavanceerde functies naar Excel en verhoogt uw productiviteit met 80%
  • Super Formula Bar (bewerk eenvoudig meerdere regels tekst en formule); Lay-out lezen (gemakkelijk grote aantallen cellen lezen en bewerken); Plakken op gefilterd bereik...
  • Cellen / rijen / kolommen samenvoegen en gegevens bewaren; Inhoud gesplitste cellen; Combineer dubbele rijen en som / gemiddelde... voorkomen dubbele cellen; Ranges vergelijken...
  • Selecteer Dupliceren of Uniek rijen; Selecteer Lege rijen (alle cellen zijn leeg); Super Find en Fuzzy Find in veel werkboeken; Willekeurig selecteren ...
  • Exacte kopie Meerdere cellen zonder formule-referentie te wijzigen; Automatisch referenties maken naar meerdere vellen; Voeg kogels toe, Selectievakjes en meer ...
  • Favoriete en snel formules invoegen, Bereiken, grafieken en afbeeldingen; Coderen van cellen met wachtwoord; Maak een mailinglijst en stuur e-mails ...
  • extract Text, Tekst toevoegen, verwijderen op positie, Verwijder de spatie; Subtotalen voor paging maken en afdrukken; Converteren tussen cellen Inhoud en opmerkingen...
  • Super filter (bewaar en pas filterschema's toe op andere bladen); Geavanceerde sortering per maand / week / dag, frequentie en meer; Speciaal filter door vet, cursief ...
  • Combineer werkmappen en werkbladen; Tabellen samenvoegen op basis van sleutelkolommen; Gegevens splitsen in meerdere bladen; Batch Converteer xls, xlsx en PDF...
  • Kutools werkt met Office 2007-2019 en 365. Het ondersteunt alle talen en is zeer eenvoudig te installeren of te implementeren. Volledige functionaliteit 60-daagse gratis proefversie.


Hier is een VBA-code die u kan helpen bij het importeren van alle tekstbestanden van een specifieke map naar een nieuw blad.

1. Schakel een werkmap in die u wilt importeren in tekstbestanden en druk op Alt + F11 toetsen om in te schakelen Microsoft Visual Basic voor toepassingen venster.

2. klikken bijvoegsel > module, kopiëren en plakken onder VBA-code naar de module venster.

VBA: meerdere tekstbestanden van de ene map naar een vel importeren

Sub Test()
'UpdatebyExtendoffice6/7/2016
    Dim xWb As Workbook
    Dim xToBook As Workbook
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    Dim xFiles As New Collection
    Dim I As Long
    Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    xFileDialog.AllowMultiSelect = False
    xFileDialog.Title = "Select a folder [Kutools for Excel]"
    If xFileDialog.Show = -1 Then
        xStrPath = xFileDialog.SelectedItems(1)
    End If
    If xStrPath = "" Then Exit Sub
    If Right(xStrPath, 1) <> "\" Then xStrPath = xStrPath & "\"
    xFile = Dir(xStrPath & "*.txt")
    If xFile = "" Then
        MsgBox "No files found", vbInformation, "Kutools for Excel"
        Exit Sub
    End If
    Do While xFile <> ""
        xFiles.Add xFile, xFile
        xFile = Dir()
    Loop
    Set xToBook = ThisWorkbook
    If xFiles.Count > 0 Then
        For I = 1 To xFiles.Count
            Set xWb = Workbooks.Open(xStrPath & xFiles.Item(I))
            xWb.Worksheets(1).Copy after:=xToBook.Sheets(xToBook.Sheets.Count)
            On Error Resume Next
            ActiveSheet.Name = xWb.Name
            On Error GoTo 0
            xWb.Close False
        Next
    End If
End Sub

3. druk op F5 om een ​​dialoogvenster weer te geven en selecteer een map die tekstbestanden bevat die u wilt importeren. Zie screenshot:
doc importeer tekstbestanden uit een map 1

4. klikken OK. Vervolgens zijn de tekstbestanden als nieuw blad afzonderlijk in de actieve werkmap geïmporteerd.
doc importeer tekstbestanden uit een map 2


Als u één tekstbestand naar een specifieke cel of een specifiek bereik wilt importeren, kunt u zich aanmelden Kutools for Excel's Voeg bestand in bij Cursor utility.

Kutools for Excel, met meer dan 120 handige Excel-functies, verbeter uw werkefficiëntie en bespaar uw werktijd.

Na gratis installatie Kutools voor Excel, doe het als volgt:

1. Selecteer een cel waarin u het tekstbestand wilt importeren en klik op Enterprise > Importeren / exporteren > Voeg bestand in bij Cursor. Zie screenshot:
doc importeer tekstbestanden uit een map 3

2. Dan verschijnt er een dialoogvenster, klik Blader om de Selecteer een bestand invoegen in het dialoogvenster Cel cursorpositie, volgende selecteren Tekstbestanden uit de vervolgkeuzelijst en kies vervolgens het tekstbestand dat u wilt importeren. Zie screenshot:
doc importeer tekstbestanden uit een map 4

3. klikken Open > Oken het opgegeven tekstbestand is ingevoegd op de cursorpositie, zie screenshot:
doc importeer tekstbestanden uit een map 5


Kutools voor Excel - De beste Office-productiviteitstool Verhoog uw productiviteit met 80%

  • Super Formula Bar (bewerk eenvoudig meerdere regels tekst en formule); Lay-out lezen (gemakkelijk grote aantallen cellen lezen en bewerken); Plakken op gefilterd bereik...
  • Cellen / rijen / kolommen samenvoegen en gegevens bewaren; Inhoud gesplitste cellen; Combineer dubbele rijen en som / gemiddelde... voorkomen dubbele cellen; Ranges vergelijken...
  • Selecteer Dupliceren of Uniek rijen; Selecteer Lege rijen (alle cellen zijn leeg); Super Find en Fuzzy Find in veel werkboeken; Willekeurig selecteren ...
  • Exacte kopie Meerdere cellen zonder formule-referentie te wijzigen; Automatisch referenties maken naar meerdere vellen; Voeg kogels toe, Selectievakjes en meer ...
  • Favoriete en snel formules invoegen, Bereiken, grafieken en afbeeldingen; Coderen van cellen met wachtwoord; Maak een mailinglijst en stuur e-mails ...
  • extract Text, Tekst toevoegen, verwijderen op positie, Verwijder de spatie; Subtotalen voor paging maken en afdrukken; Converteren tussen cellen Inhoud en opmerkingen...
  • Super filter (bewaar en pas filterschema's toe op andere bladen); Geavanceerde sortering per maand / week / dag, frequentie en meer; Speciaal filter door vet, cursief ...
  • Combineer werkmappen en werkbladen; Tabellen samenvoegen op basis van sleutelkolommen; Gegevens splitsen in meerdere bladen; Batch Converteer xls, xlsx en PDF...
  • Werkt met Office 2007-2019 en 365 en ondersteunt alle talen. Het is eenvoudig te implementeren in uw bedrijf. Volledige functionaliteit 60-daagse gratis proefversie.
kte-tab 201905

Tabblad Office Brengt interface met tabbladen naar Office en maakt uw werk veel eenvoudiger

  • Bewerken en lezen met tabbladen inschakelen in Word, Excel, PowerPoint, Publisher, Access, Visio en Project.
  • Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster, in plaats van in nieuwe vensters.
  • Verhoogt uw productiviteit met 50% en verlaagt dagelijks honderden muisklikken voor u!
Officetab onderaan
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    pooja · 6 months ago
    hi i want to prevent removing preceding zero's in excel.

    i have tried below code but it is not working


    Sub Test()
    Dim xWb As Workbook
    Dim xToBook As Workbook
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    Dim xFiles As New Collection
    Dim I As Long
    Dim j As Long
    Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    xFileDialog.AllowMultiSelect = False
    xFileDialog.Title = "Select a folder"
    If xFileDialog.Show = -1 Then
    xStrPath = xFileDialog.SelectedItems(1)
    End If
    If xStrPath = "" Then Exit Sub
    If Right(xStrPath, 1) <> "\" Then xStrPath = xStrPath & "\"
    xFile = Dir(xStrPath & "*.txt")
    If xFile = "" Then
    MsgBox "No files found", vbInformation, "Kutools for Excel"
    Exit Sub
    End If
    Do While xFile <> ""
    xFiles.Add xFile, xFile
    xFile = Dir()
    Loop
    Set xToBook = ThisWorkbook
    If xFiles.Count > 0 Then
    For I = 1 To xFiles.Count
    Set xWb = Workbooks.Open(xStrPath & xFiles.Item(I))
    ActiveSheet.Cells.NumberFormat = "@" 'This is to make excel in text format before pasting the text file data
    xWb.Worksheets(1).Copy After:=xToBook.Sheets(xToBook.Sheets.Count)
    On Error Resume Next
    ActiveSheet.Name = xWb.Name
    On Error GoTo 0
    xWb.Close False
    Next
    End If
    End Sub
    • To post as a guest, your comment is unpublished.
      Sunny · 6 months ago
      Pooja, you can try the Remove Leading Zeros function of Kutools for Excel to remove all leading zeros from selection after importing.
      • To post as a guest, your comment is unpublished.
        pooja · 6 months ago
        but I don't want to remove. I want to prevent from removing preceding zero's.
        • To post as a guest, your comment is unpublished.
          Sunny · 6 months ago
          If you want to keep the leading zeros, you can format them as text format by Cell Format.
  • To post as a guest, your comment is unpublished.
    Harsh · 7 months ago
    How would you delete the sheets in vba code if you dont want duplicates on re-executing the module?
    • To post as a guest, your comment is unpublished.
      Sunny · 6 months ago
      Sorry, Harsh, just be carefull to avoid repeatly importing.
  • To post as a guest, your comment is unpublished.
    John · 11 months ago
    Hi, my code runs but only imports the first file. It says there was a method error for copy. The debugger highlights the following line of code. Any ideas?


    xWb.Worksheets(1).Copy after:=xToBook.Sheets(xToBook.Sheets.Count)
  • To post as a guest, your comment is unpublished.
    Albeer Mayez · 1 years ago
    The Code is very helpful, it is the only code that i found which gets txt files in bulk the fix that i need on it is also what Joyce and Davinder are after.
    It is to extract the .txt files and paste them all under each other in a specific column lets say column 'N'.

    Also, need to know if it will be possible to add an "if condition" for the .txt files imported to be as follow.
    if the .txt files start with letter 'A' then to be pasted on 'sheet 1' starting with cell 'N2'
    and if the .txt files start with letter 'B' then paste on 'Sheet 2' starting with cell 'N2'
    else MsgBox to be "Unrecognised .txt file purpose".

    thank you in advance
    • To post as a guest, your comment is unpublished.
      Sunny · 1 years ago
      Sorry, my hands are tied
    • To post as a guest, your comment is unpublished.
      Albeer Mayez · 1 years ago
      I have this code worked for me but still, I need to change some in it.

      *I want it to paste on the same sheet without opening a new sheet then copy it as it takes longer time.

      *need to insert a conditional if for txt files imported to be pasted on sheet 1 if it starts with letter A and imported to Sheet 2 if it starts with letter B


      Sub testcopy3()
      Dim xWb As Workbook
      Dim xToBook As Workbook
      Dim xStrPath As String
      Dim xFileDialog As FileDialog
      Dim xFile As String
      Dim xFiles As New Collection
      Dim i As Long
      Dim LastRow As Long
      Dim Rng As Range
      Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
      xFileDialog.AllowMultiSelect = False
      xFileDialog.Title = "Select a folder [Kutools for Excel]"
      If xFileDialog.Show = -1 Then
      xStrPath = xFileDialog.SelectedItems(1)
      End If
      If xStrPath = "" Then Exit Sub
      If Right(xStrPath, 1) <> "\" Then xStrPath = xStrPath & "\"
      xFile = Dir(xStrPath & "*.txt")
      If xFile = "" Then
      MsgBox "No files found", vbInformation, "Kutools for Excel"
      Exit Sub
      End If
      Do While xFile <> ""
      xFiles.Add xFile, xFile
      xFile = Dir()
      Loop
      Range("N2").Select
      Set xToBook = ThisWorkbook
      If xFiles.Count > 0 Then
      For i = 1 To xFiles.Count
      Set xWb = Workbooks.Open(xStrPath & xFiles.Item(i))
      xWb.Activate
      'Selecting and copying the txt data
      Range(Selection, Selection.End(xlDown)).Select
      Selection.Copy
      xToBook.Activate
      ActiveSheet.Paste
      Selection.End(xlDown).Offset(1).Select
      On Error Resume Next
      On Error GoTo 0
      xWb.Close False
      Next
      End If
      End Sub
  • To post as a guest, your comment is unpublished.
    Joyce · 1 years ago
    When I run the module as given, it adds each .txt file as a new sheet, not as a new line to the existing sheet. Is there a way to achieve that as the output instead of new sheets for each .txt file?
  • To post as a guest, your comment is unpublished.
    DF Max · 1 years ago
    how to do if my Txt file contain delimited using comma?
    • To post as a guest, your comment is unpublished.
      Sunny · 1 years ago
      You can use Find and Replace fuctuon to replace the comma with space first, and the apply one of above method to convert it to Excel file.
      • To post as a guest, your comment is unpublished.
        Robin · 1 years ago
        Isn't there a way to change this in the code? I'd have to do this with 130 files
  • To post as a guest, your comment is unpublished.
    P B Rama Murty · 1 years ago
    Sub Test()
    'UpdatebyExtendoffice6/7/2016
    Dim xWb As Workbook
    Dim xToBook As Workbook
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    Dim xFiles As New Collection
    Dim I As Long
    Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    xFileDialog.AllowMultiSelect = False
    xFileDialog.Title = "Select a folder [Kutools for Excel]"
    If xFileDialog.Show = -1 Then
    xStrPath = xFileDialog.SelectedItems(1)
    End If
    If xStrPath = "" Then Exit Sub
    If Right(xStrPath, 1) <> "\" Then xStrPath = xStrPath & "\"
    xFile = Dir(xStrPath & "*.txt")
    If xFile = "" Then
    MsgBox "No files found", vbInformation, "Kutools for Excel"
    Exit Sub
    End If
    Do While xFile <> ""
    xFiles.Add xFile, xFile
    xFile = Dir()
    Loop
    Set xToBook = ThisWorkbook
    If xFiles.Count > 0 Then
    For I = 1 To xFiles.Count
    Set xWb = Workbooks.Open(xStrPath & xFiles.Item(I))
    xWb.Worksheets(1).Copy after:=xToBook.Sheets(xToBook.Sheets.Count)
    On Error Resume Next
    ActiveSheet.Name = xWb.Name
    On Error GoTo 0
    xWb.Close False
    Next
    End If
    End Sub

    this code is helping but I want

    tab, semi colon, space true how to do this please help me
    • To post as a guest, your comment is unpublished.
      Sunny · 1 years ago
      Do you want to keep the space(delimiters) after converting the text files to sheets?
      • To post as a guest, your comment is unpublished.
        farzaneh · 1 years ago
        that is my problem too, this code is true. but after convert text files to excel, it doesn't keep the delimiters.
        • To post as a guest, your comment is unpublished.
          Sunny · 1 years ago
          Could you upload the text file and the result you want for me?
          • To post as a guest, your comment is unpublished.
            Des · 11 months ago
            I have the same problem. The txt files are all in separate sheets and the code ignores the space between the two columns
            • To post as a guest, your comment is unpublished.
              Sunny · 11 months ago
              Hello, Des and P B Rama Murty, the below code can split data into columns based on space or tab while importing text file to sheets. You can have a try.

              Sub ImportTextToExcel()
              'UpdatebyExtendoffice20180911
              Dim xWb As Workbook
              Dim xToBook As Workbook
              Dim xStrPath As String
              Dim xFileDialog As FileDialog
              Dim xFile As String
              Dim xFiles As New Collection
              Dim I As Long
              Dim xIntRow As Long
              Dim xFNum, xFArr As Long
              Dim xStrValue As String
              Dim xRg As Range
              Dim xArr
              Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
              xFileDialog.AllowMultiSelect = False
              xFileDialog.Title = "Select a folder [Kutools for Excel]"
              If xFileDialog.Show = -1 Then
              xStrPath = xFileDialog.SelectedItems(1)
              End If
              If xStrPath = "" Then Exit Sub
              If Right(xStrPath, 1) <> "\" Then xStrPath = xStrPath & "\"
              xFile = Dir(xStrPath & "*.txt")
              If xFile = "" Then
              MsgBox "No files found", vbInformation, "Kutools for Excel"
              Exit Sub
              End If
              Do While xFile <> ""
              xFiles.Add xFile, xFile
              xFile = Dir()
              Loop
              Set xToBook = ThisWorkbook
              On Error Resume Next
              Application.ScreenUpdating = False
              If xFiles.Count > 0 Then

              For I = 1 To xFiles.Count
              Set xWb = Workbooks.Open(xStrPath & xFiles.Item(I))
              xWb.Worksheets(1).Copy after:=xToBook.Sheets(xToBook.Sheets.Count)

              ActiveSheet.Name = xWb.Name

              xWb.Close False
              xIntRow = ActiveCell.CurrentRegion.Rows.Count
              For xFNum = 1 To xIntRow
              Set xRg = ActiveSheet.Range("A" & xFNum)
              xArr = Split(xRg.Text, " ")
              If UBound(xArr) > 0 Then
              For xFArr = 0 To UBound(xArr)
              If xArr(xFArr) <> "" Then
              xRg.Value = xArr(xFArr)
              Set xRg = xRg.Offset(ColumnOffset:=1)
              End If
              Next
              End If
              Next
              Next
              End If
              Application.ScreenUpdating = True
              End Sub