Note: The other languages of the website are Google-translated. Back to English

Cum să importați rapid mai multe fișiere CSV / text / XML în Excel?

În Excel, este posibil să fiți legat pentru a salva un registru de lucru ca fișier csv, fișier text sau fișier xml, dar ați încercat vreodată să importați mai multe fișiere csv / text / xml dintr-un folder într-un registru de lucru sau într-o foaie de lucru? În acest articol, introduc câteva metode pentru a le importa rapid pe lot.

Importați mai multe fișiere text dintr-un folder în fiecare fișă de lucru a unui registru de lucru cu VBA

Importați mai multe fișiere CSV dintr-un folder într-o singură foaie cu VBA

Importați mai multe fișiere XML dintr-un folder într-o singură foaie cu VBA

Importați sau combinați mai multe fișiere xml / csv într-o foaie sau un registru de lucru cu Kutools pentru Excel idee bună3

Exportați fiecare foaie ca csv / text / pdf într-un folder cu Kutools pentru Excelidee bună3


Pentru a importa fișiere text dintr-un folder într-un registru de lucru, puteți utiliza mai jos VBA pentru a le gestiona rapid.

1. Activați un registru de lucru gol și apăsați Alt + F11 tastele pentru a deschide Microsoft Visual Basic pentru aplicații fereastră.

2. clic Insera > Module, și lipiți VBA în Module fereastră.

VBA: Importați toate fișierele text dintr-un folder într-un registru de lucru

Sub LoadPipeDelimitedFiles()
'UpdatebyKutoolsforExcel20151214
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    Dim xCount As Long
    On Error GoTo ErrHandler
    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
    Application.ScreenUpdating = False
    xFile = Dir(xStrPath & "\*.txt")
    Do While xFile <> ""
        xCount = xCount + 1
        Sheets(xCount).Select
        With ActiveSheet.QueryTables.Add(Connection:="TEXT;" _
          & xStrPath & "\" & xFile, Destination:=Range("A1"))
            .Name = "a" & xCount
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = 437
            .TextFileStartRow = 1
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = False
            .TextFileSemicolonDelimiter = False
            .TextFileCommaDelimiter = False
            .TextFileSpaceDelimiter = False
            .TextFileOtherDelimiter = "|"
            .TextFileColumnDataTypes = Array(1, 1, 1)
            .TextFileTrailingMinusNumbers = True
            .Refresh BackgroundQuery:=False
            xFile = Dir
        End With
    Loop
    Application.ScreenUpdating = True
    Exit Sub
ErrHandler:
    MsgBox "no files txt", , "Kutools for Excel"
End Sub

3. presa F5 cheie sau Alerga pentru a rula VBA și selectați un folder din care doriți să importați fișierele text din dialogul popping. Vedeți captura de ecran:

import doc mai multe text CSV xml 1

4. Și faceți clic pe OKși fiecare fișier text din folderul selectat a fost importat într-o foaie de lucru a registrului de lucru activ. Vedeți captura de ecran:

import doc mai multe text CSV xml 2import doc mai multe text CSV xml 3

Combinați cu ușurință mai multe foi / registru de lucru într-o singură coală sau registru de lucru

Pentru a combina mai multe foi sau registre de lucru într-o singură foaie sau registru de lucru poate fi dificil în Excel, dar cu Combina funcție în Kutools pentru Excel, puteți combina fuzionarea a zeci de foi / registre de lucru într-o singură foaie sau registru de lucru, de asemenea, puteți consolida foile într-una numai cu câteva clicuri.  Faceți clic pentru funcții complete 30 zile de probă gratuită!
combina foi
 
Kutools pentru Excel: cu peste 300 de programe de completare Excel la îndemână, puteți încerca gratuit fără limitare în 30 zile.

Pentru a importa toate fișierele CSV dintr-un dosar într-o singură foaie, puteți utiliza codul VBA de mai jos.

1. Activați o foaie de lucru goală și apăsați Alt + F11 tastele pentru a deschide Microsoft Visual Basic pentru aplicații fereastră.

2. clic Insera > Module, și lipiți mai jos VBA în noul Module fereastră.

VBA: Importați fișiere CSV dintr-un folder într-o singură foaie de lucru

Sub ImportCSVsWithReference()
'UpdatebyKutoolsforExcel20151214
    Dim xSht  As Worksheet
    Dim xWb As Workbook
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    On Error GoTo ErrHandler
    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
    Set xSht = ThisWorkbook.ActiveSheet
    If MsgBox("Clear the existing sheet before importing?", vbYesNo, "Kutools for Excel") = vbYes Then xSht.UsedRange.Clear
    Application.ScreenUpdating = False
    xFile = Dir(xStrPath & "\" & "*.csv")
    Do While xFile <> ""
        Set xWb = Workbooks.Open(xStrPath & "\" & xFile)
        Columns(1).Insert xlShiftToRight
        Columns(1).SpecialCells(xlBlanks).Value = ActiveSheet.Name
        ActiveSheet.UsedRange.Copy xSht.Range("A" & Rows.Count).End(xlUp).Offset(1)
        xWb.Close False
        xFile = Dir
    Loop
    Application.ScreenUpdating = True
    Exit Sub
ErrHandler:
    MsgBox "no files csv", , "Kutools for Excel"
End Sub

3. presa F5 tasta sau faceți clic Alerga pentru a executa VBA și apare un dialog pentru a selecta un folder din care doriți să importați toate fișierele CSV. Vedeți captura de ecran:

import doc mai multe text CSV xml 4

4. clic OKși apare un dialog pentru a vă reaminti dacă ștergeți conținutul foii de lucru active înainte de import, aici fac clic Da. Vedeți captura de ecran:

import doc mai multe text CSV xml 5

După ce faceți clic Da, toate fișierele CSV din folderul selectat sunt importate în foaia curentă și plasează datele din Coloana A în dreapta. Vedeți captura de ecran:

import doc mai multe text CSV xml 6import doc mai multe text CSV xml 7

Sfat: Dacă doriți să plasați fișierele CSV orizontal într-o foaie de lucru, puteți utiliza mai jos VBA.

Sub ImportCSVsWithReferenceI()
'UpdatebyKutoolsforExcel20151214
    Dim xSht  As Worksheet
    Dim xWb As Workbook
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    Dim xCount As Long
    On Error GoTo ErrHandler
    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
    Set xSht = ThisWorkbook.ActiveSheet
    If MsgBox("Clear the existing sheet before importing?", vbYesNo, "Kutools for Excel") = vbYes Then
        xSht.UsedRange.Clear
        xCount = 1
    Else
        xCount = xSht.Cells(3, Columns.Count).End(xlToLeft).Column + 1
    End If
    Application.ScreenUpdating = False
    xFile = Dir(xStrPath & "\" & "*.csv")
    Do While xFile <> ""
        Set xWb = Workbooks.Open(xStrPath & "\" & xFile)
        Rows(1).Insert xlShiftDown
        Range("A1") = ActiveSheet.Name
        ActiveSheet.UsedRange.Copy xSht.Cells(1, xCount)
        xWb.Close False
        xFile = Dir
        xCount = xSht.Cells(3, Columns.Count).End(xlToLeft).Column + 1
    Loop
    Application.ScreenUpdating = True
    Exit Sub
ErrHandler:
    MsgBox "no files csv", , "Kutools for Excel"
End Sub 

import doc mai multe text CSV xml 8


Dacă doriți să importați toate fișierele XML dintr-un folder într-o singură foaie, puteți utiliza mai jos codul VBA.

1. Selectați o foaie goală pe care doriți să plasați datele importate și apăsați Alt + F11 taste pentru activare Microsoft Visual Basic pentru aplicații fereastră.

2. clic Insera > Module, lipiți codul VBA în Module fereastră.

VBA: Importați fișiere XML dintr-un folder într-o foaie de lucru.

Sub From_XML_To_XL()
'UpdatebyKutoolsforExcel20151214
    Dim xWb As Workbook
    Dim xSWb As Workbook
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    Dim xCount As Long
    On Error GoTo ErrHandler
    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
    Application.ScreenUpdating = False
    Set xSWb = ThisWorkbook
    xCount = 1
    xFile = Dir(xStrPath & "\*.xml")
    Do While xFile <> ""
        Set xWb = Workbooks.OpenXML(xStrPath & "\" & xFile)
        xWb.Sheets(1).UsedRange.Copy xSWb.Sheets(1).Cells(xCount, 1)
        xWb.Close False
        xCount = xSWb.Sheets(1).UsedRange.Rows.Count + 2
        xFile = Dir()
    Loop
    Application.ScreenUpdating = True
    xSWb.Save
    Exit Sub
ErrHandler:
    MsgBox "no files xml", , "Kutools for Excel"
End Sub

3. clic Alerga butonul sau F5 tasta pentru a rula VBA și selectați un folder în caseta de dialog popping, consultați captura de ecran:

import doc mai multe text CSV xml 9

4. clic OKși toate fișierele XML din folderul selectat sunt importate în foaia activă.


Dacă nu sunteți familiarizați cu VBA, vă faceți griji, aici vă prezint un instrument la îndemână - Kutools pentru Excel Pentru dumneavoastră. Cu puterea sa Combina utilitar, puteți combina rapid mai multe fișiere XML sau fișiere CSV într-un singur registru de lucru sau într-o singură foaie Excel.

Kutools pentru Excel, cu mai mult de 300 funcții la îndemână, vă face munca mai ușoară. 

După instalare Kutools pentru Excel, faceți următoarele:(Descărcați gratuit Kutools pentru Excel acum!)

1. Activez Excel și faceți clic pe Kutools Plus > Combina. Vedeți captura de ecran :
doc combina 1

2. Și în pasul 1 din Combinați , alegeți o opțiune de separare după cum aveți nevoie. Vedeți captura de ecran:
doc combina 2

3. clic Pagina Următoare → a merge la pasul 2 al Combinației, Faceți clic pe Adăuga pentru a adăuga fișiere din diferite foldere sau fișiere dintr-un folder în Workbook listă și, de asemenea, puteți specifica foile din care doriți să combinați Fisa de lucru lista secțiunii din dreapta. Vedeți captura de ecran:
doc kutools combină foile 3

4. clic Pagina Următoare → până la ultimul pas al Combina, și puteți specifica opțiunile de combinare.
doc kutools combină foile 4

5. clic finalizarea, apare un dialog pentru a vă reaminti să selectați o locație pentru a salva noul rezultat combinat. Vedeți captura de ecran:
doc combina 5

6. clic Economisiți. Toate foile adăugate au fost combinate într-o singură foaie nouă.
doc combina 6

Sfat: Cu Combina, de asemenea, puteți combina mai multe Fișiere CSV formează mai multe foldere sau un singur folder într-o singură foaie sau registru de lucru.


Dacă doriți să exportați fiecare foaie ca fișier csv / text / pdf într-un folder, Kutools pentru Excel'S Carnet de lucru divizat utilitatea vă poate face o favoare.

După instalare gratuită Kutools pentru Excel, faceți următoarele:

1. Activați registrul de lucru pe care doriți să-l exportați foile de lucru și faceți clic pe Kutools Plus > Workbook > Carnet de lucru divizat. Vedeți captura de ecran:

import doc mai multe text CSV xml 10

2. În Carnet de lucru divizat caseta de dialog, puteți verifica numele foilor pe care trebuie să le exportați, în mod implicit toate foile sunt verificate și verificați Specificați formatul de salvare și selectați formatul de fișier pe care doriți să îl salvați din lista verticală de mai jos. Vedeți captura de ecran:

import doc mai multe text CSV xml 11

3. clic Despică și selectați un folder pentru a salva fișierele împărțite în Căutați dosarul dialog, vezi captura de ecran:

import doc mai multe text CSV xml 12

4. clic OK, acum toate foile verificate sunt exportate ca nou format de fișier în folderul selectat.


Articole relative:


Cele mai bune instrumente de productivitate Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%

  • reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Peste 300 de funcții puternice. Suportă Office / Excel 2007-2021 și 365. Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Funcții complete Probă gratuită de 30 de zile. Garanție de returnare a banilor de 60 de zile.
fila kte 201905

Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
fundul officetab
Comentarii (36)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua, vă mulțumesc foarte mult pentru acele mostre de cod! Primul (VBA: importați toate fișierele text dintr-un folder într-un registru de lucru) este aproape exact ceea ce am nevoie. Aș dori, totuși, să selectez ce fișiere să import și să nu importe automat toate fișierele text dintr-un folder dat. De asemenea, aș dori ca conținutul de ieșire al foilor mele țintă să fie suprascris de conținutul fișierelor text. (Cu codul de mai sus, conținutul existent este mutat la dreapta în loc să fie înlocuit.) Cum procedez? Mulțumesc anticipat!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, aș dori să înțeleg despre codul VBA pentru „Importați mai multe fișiere Xml dintr-un folder într-o singură coală cu VBA”. 1. De ce sunt necesare 2 caiete de lucru în loc de 1? 2. Este nevoie de ceva timp pentru a încărca multe fișiere xml în Excel, deci există un cod mai eficient? Pentru că îmi dau seama când a fost rulat codul dvs., sunt create multe cărți de lucru VBA care au cauzat încetinirea. As aprecia foarte mult daca ma puteti ajuta sa inteleg!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Îmi pare rău, nu am înțeles prima întrebare, iar despre a doua, codul mai eficient, nu l-am găsit, dacă știți, vă rog să-mi lăsați o notă, mulțumesc.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, aș dori să înțeleg despre codul VBA pentru „Importarea mai multor fișiere .txt dintr-un folder într-o singură foaie cu VBA” de următorul rând disponibil (nu orizontal). Va rog ajutati, urgent
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua, dacă doriți să importați toate fișierele txt dintr-un folder într-o singură foaie, puteți utiliza codul vba de mai sus pentru a importa mai întâi fișiere txt într-un registru de lucru, apoi aplicați Kutools pentru Excel caracteristica Combină foi de lucru pentru a combina toate foile unui registru de lucru la o foaie, apoi fișierele txt într-o foaie. Sper că te ajută.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Problema cu aceasta este că comanda VBA și nici Kutools permit importarea fișierelor csv cu formatarea codului de caractere. Preîncărcarea este vestică. Trebuie să import toate fișierele csv ca unicode-8
Acest comentariu a fost redus la minimum de moderatorul de pe site
codul pentru conversia din fișiere txt nu a funcționat pentru mine.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Îmi pare rău că acest articol nu funcționează pentru tine. Ai putea descrie problema ta? Ce se întâmplă în timpul rulării codului? Si cu ce sistem lucrezi?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut! Codul „Importați fișiere csv dintr-un folder într-o singură foaie de lucru”, funcționează pentru mine! Dar acest cod nu funcționează pentru un fișier .txt gol. Există vreo modalitate de a păstra și fișierele goale?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Ne pare rău, nu știu de ce trebuie să importați un txt.file gol~Inserați doar rânduri goale pentru a separa conținutul.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mike: „codul pentru conversia din fișiere txt nu a funcționat pentru mine”.

Am avut aceeași problemă. Macro-erorile apar dacă aveți mai multe fișiere txt de deschis decât foi de lucru din registrul de lucru (implicit este 3).
Am rezolvat-o adăugând următoarele chiar înainte de ieșirea buclei, astfel încât macro-ul să creeze o foaie nouă după rest
ActiveWorkbook.Sheets.Add After:=Foaie de lucru(Foi de lucru.Număr)
Acest comentariu a fost redus la minimum de moderatorul de pe site
Chad, asta a funcționat perfect pentru mine pentru a importa mai multe fișiere text. Mulțumesc.

Știți dacă există o modalitate de a extrage numele fișierelor? Vreau ca numele fișierelor text să fie copiate în fiecare file Excel.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Total uimitor! Am încercat să deschideți toate fișierele csv într-o singură foaie de lucru și a funcționat frumos. Mulțumesc mult, într-adevăr!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, am încercat să rulez codul pentru .xml și nu pare să funcționeze, deoarece am primit mesajul „fără fișiere xml”. Cum rezolvi asta?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Va apărea un mesaj „fără fișiere xml”, în timp ce folderul selectat nu conține fișierele xml. Puteți selecta folderul potrivit care conține fișiere xml în dialogul de deschidere după ce rulați codul pentru importarea lor în foaia activă.
Acest comentariu a fost redus la minimum de moderatorul de pe site
A mers! Mulțumiri
Acest comentariu a fost redus la minimum de moderatorul de pe site
salut, saya mau tanya kalo import txt file ke satu sheet gimana ya?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, rendy, ați dori să importați toate txt-urile pe o singură foaie sau fiecare txt pe fiecare foaie?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am cod pentru a importa txt-uri în foi, fiecare txt în fiecare foaie, dar vreau ca fiecare txt să fie importat cu numele său în foaie, adică redenumiți fiecare foaie importată cu numele txt-ului fișierul de cod atașat .. vreau să editez acest lucru fișier pentru a adăuga cod pentru redenumirea foilor cu numele txts... mulțumesc.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am cod pentru a importa txt-uri în foi, fiecare txt în fiecare foaie, dar vreau ca fiecare txt să fie importat cu numele său în foaie, adică redenumiți fiecare foaie importată cu numele txt-ului fișierul de cod atașat .. mulțumesc
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Ramy, zahran, puteți încerca codul de mai jos, care poate importa fișierele text și poate redenumi numele foii în numele fișierului text.
Sub LoadPipeDelimitedFiles()
'Actualizare deExtendoffice20180925
Dim xStrPath ca șir
Dim xFileDialog ca FileDialog
Dim xFile ca șir
Dim xCount As Long
Dim xWS ca fișă de lucru

La eroare GoTo ErrHandler
Setați xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = Fals
xFileDialog.title = „Selectați un folder [Kutools pentru Excel]”
Dacă xFileDialog.Show = -1, atunci
xStrPath = xFileDialog.SelectedItems(1)
Final, dacă
Dacă xStrPath = "" Ieșiți din sub
Application.ScreenUpdating = Fals
xFile = Dir(xStrPath & „\*.txt”)
Faceți în timp ce xFile <> ""
xCount = xCount + 1
Set xWS = Foi (xCount)
xWS.Selectați
xWS.Name = „TEXT” și stânga (xFile, Len (xFile) - 4)
Cu ActiveSheet.QueryTables.Add(Connection:="TEXT;" _
& xStrPath & "\" & xFile, Destination:=Range("A1"))
.Nume = „a” și xCount
.FieldNames = Adevărat
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = Adevărat
.RefreshOnFileOpen = Fals
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = Adevărat
.AdjustColumnWidth = Adevărat
.RefreshPeriod = 0
.TextFilePromptOnRefresh = Fals
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = Fals
.TextFileTabDelimiter = Fals
.TextFileSemicolonDelimiter = Fals
.TextFileCommaDelimiter = Fals
.TextFileSpaceDelimiter = Fals
.TextFileOtherDelimiter = "|"
.TextFileColumnDataTypes = Array(1, 1, 1)
.TextFileTrailingMinusNumbers = Adevărat
.Actualizează BackgroundQuery:=False
xFile = Dir
Se termina cu
Buclă
Application.ScreenUpdating = Adevărat
Ieșiți din Sub
ErrHandler:
MsgBox „fără fișiere txt”, , „Kutools pentru Excel”
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut! Am folosit codul pentru a îmbina mai multe fișiere XML într-unul singur, dar, din păcate, coloanele s-au încurcat. Cele 5 fișiere care erau îmbinate aveau toate același format. Există vreo modalitate de a remedia asta? De asemenea, mă întrebam dacă există o modalitate de a scăpa de anteturile care sunt duplicate atunci când fișierele sunt îmbinate. Mulțumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc. Acest site a fost de mare ajutor. Am o problemă pe care nu o pot rezolva. Încerc să import mai multe fișiere csv într-o foi separată excel în excel și să redenumesc fiecare foaie după numele fișierului csv. Știu că acest lucru a fost acoperit mai jos pentru un fișier txt, dar lucrez cu fișiere csv. Mulțumesc anticipat.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, folosesc importul tuturor fișierelor csv într-un singur fișier listat mai sus „Importați mai multe fișiere Csv dintr-un folder într-o singură foaie cu VBA” - aș dori să definesc folderul din care colectează datele fără a fi nevoie să aleg manual aceasta. Se poate face asta? multumesc - SW.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut, Scott W, am descoperit că un cod VBA te poate ajuta.
Opțiune explicită

Sub ImportCSVsWithReference()
„Autor: Jerry Beaucaire
„Data: 10
„Rezumat: importați toate fișierele CSV dintr-un folder într-o singură foaie
' adăugând un câmp în coloana A care listează numele fișierelor CSV

Dim wbCSV ca registru de lucru
Dim wsMstr As Worksheet: Set wsMstr = ThisWorkbook.Sheets("Sheet1")
Dim fPath As String: fPath = " C:\Users\DT168\Desktop\New folder\" 'calea către fișierele CSV, includeți finalul \
Dim fCSV ca șir

Dacă MsgBox ("Ștergeți foaia existentă înainte de a importa?", vbYesNo, "Ștergeți?") _
= vbYes Apoi wsMstr.UsedRange.Clear

Application.ScreenUpdating = Macrocomanda de accelerare falsă

fCSV = Dir(fPath & „*.csv”) „începe lista de fișiere CSV

Faceți în timp ce Len(fCSV) > 0
'deschideți un fișier CSV
Set wbCSV = Workbooks.Open(fPath & fCSV)
„inserați coloana A și adăugați numele CSV
Coloane(1).Inserați xlShiftToRight
Coloane(1).SpecialCells(xlBlanks).Value = ActiveSheet.Name
„Copiați data în foaia principală și închideți fișierul sursă
ActiveSheet.UsedRange.Copy wsMstr.Range(„A” și Rows.Count).End(xlUp).Offset(1)
wbCSV.Închidere False
„gata următorul CSV
fCSV = Dir
Buclă

Application.ScreenUpdating = Adevărat
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cum să eliminați antetul duplicat și coloana cu numele fișierului CSV. Vă rugăm să ajutați.... Am trecut prin mai multe articole, dar, din păcate, toate dau același rezultat.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua - Am folosit codurile dvs. VBA pentru a extrage date din mai multe fișiere CSV în fișier Excel (codul de pe această pagină) și pentru a converti fișiere CSV în fișiere Excel (acesta: https://www.extendoffice.com/documents/excel/4615-excel-batch-convert-csv-to-xls-xlsx.html), cu rezultate excelente. M-au ajutat să economisesc mult timp.

Cu toate acestea, observ o problemă comună cu ambele tipuri de coduri. Pentru a clarifica, sistemul meu este configurat să utilizeze standardele europene pentru date, în timp ce unele dintre fișierele CSV pe care le-am primit pentru munca mea conțin date în standardele SUA. Prima problemă este că, atunci când extrag sau convertesc date dintr-un fișier CSV care conține date în format SUA, toate aceste date sunt inversate (se potrivesc cu standardele UE utilizate de sistemul meu). Acest lucru este grozav, dar mi-a cauzat și probleme, deoarece nu știam că codurile vor inversa datele pentru mine, așa că am continuat și am făcut același lucru din nou. A doua problemă este că pentru fișierele CSV care conțin date deja în același format cu cel folosit de sistemul meu (standarde UE), doar datele ambigue sunt inversate (adică 04/05/2019 - 05/04/2019), în timp ce cele prea evidente rămân neschimbate (adică 30).

Ceea ce aș dori să facă codurile, este exact același lucru pe care sunt afișate aici, doar că ar trebui să copieze și să lipească datele (în special datele) în formatele exacte folosite în fișierele originale. Acest lucru ar ajuta la prevenirea eventualelor confuzii și greșeli. Aș dori să învăț VBA pentru a putea într-o zi să-mi scriu propriile coduri, dar deocamdată nici măcar nu pot modifica părți din codurile existente pentru a se potrivi nevoilor mele. Deci, dacă puteți ajuta, vă rog să-mi spuneți unde ar trebui să pun codurile modificate (cu care ați venit) la codurile existente. Apreciez toate feedback-urile și sprijinul pe care îl pot obține. Va multumesc tuturor!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Marshall, în metoda Workbooks.Open, adăugați opțiunea Local:=True.

de exemplu
Set xWb = Workbooks.Open(xStrPath & "\" & xFile, Local:=True)
Acest comentariu a fost redus la minimum de moderatorul de pe site
Multumesc mult Robert. Îmi pare rău că nu am putut să-ți răspund mai devreme. Nu am primit nicio notificare pana acum. Voi încerca acest lucru și voi reveni mai târziu la dvs. pentru a vă anunța dacă funcționează.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Robert,
Sunt eu din nou. Mi-a luat ceva timp să am timp să îmi dau seama la ce parte a codului ar trebui adăugată partea „Local:True”. Rezultatul s-a dovedit grozav deoarece datele nu mai sunt inversate. Mulțumesc!
Pentru oricine are aceeași problemă, trebuie doar să schimbați această linie:
Set xWb = Workbooks.OpenXML(xStrPath & "\" & xFile)

La acest:
Set xWb = Workbooks.Open(xStrPath & "\" & xFile, Local:=True)
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, există vreo modalitate de a importa mai multe fișiere CSV cu punct și virgulă ca separator? Mulțumesc!
PS Frumos articol!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut echipa

Folosesc codul pentru importul mai multor fișiere XML într-o singură foaie cu VBA, totuși problema cu care mă confrunt este când numărul de rânduri ajunge la aproximativ 650000, apoi nu procesează restul fișierelor xml din folder și dă o eroare că nu există fișiere xml . Aveți nevoie de sprijinul dumneavoastră pentru a crește acest număr.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut Experti

Folosesc codul de mai sus pentru a importa mai multe fișiere XML într-o singură foaie de lucru folosind VBA, totuși problema cu care mă confrunt este că atunci când numărul de rânduri ajunge la 1 într-o foaie de lucru, atunci acest cod nu procesează restul fișierelor XML din folder. Afișează o eroare „no files.xml”. Solicitați sprijinul dvs. amabil
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua, instrucțiunile pentru importarea mai multor fișiere xml într-o singură filă a unui document Excel funcționează, dar mă întrebam cum să-l alinieze coloanele. XML-urile mele nu au toate aceleași etichete. Ele sunt configurate astfel încât, dacă xml-ul nu avea date pentru unele antete (etichete), atunci antetul lipsește din acel xml. Există o modalitate de a face ca fișierele xml să fie importate, astfel încât aceleași anteturi de la fiecare xml și datele asociate să cadă în aceeași coloană a Excel?
Nu există comentarii postate aici încă
Încărcați mai
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0   Caractere
Locații sugerate

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL