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

Hur importerar jag snabbt flera csv / text / xml-filer i Excel?

I Excel kan du ha sparat en arbetsbok som csv-fil, textfil eller xml-fil, men har du någonsin försökt importera flera csv / text / xml-filer från en mapp till en arbetsbok eller ett kalkylblad? I den här artikeln introducerar jag några metoder för att snabbt importera dem i batch.

Importera flera textfiler från en mapp till varje arbetsblad i en arbetsbok med VBA

Importera flera csv-filer från en mapp till ett ark med VBA

Importera flera xml-filer från en mapp till ett ark med VBA

Importera eller kombinera flera xml / csv-filer till ett ark eller en arbetsbok med Kutools för Excel bra idé3

Exportera varje ark som csv / text / pdf till en mapp med Kutools för Excelbra idé3


För att importera textfiler från en mapp till en arbetsbok kan du använda VBA nedan för att snabbt hantera den.

1. Aktivera en tom arbetsbok och tryck på Alt + F11 nycklar för att öppna Microsoft Visual Basic för applikationer fönster.

2. klick Insert > Modulernaoch klistra in VBA i Modulerna fönster.

VBA: Importera alla textfiler från en mapp till en arbetsbok

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. Tryck F5 nyckel eller run för att köra VBA och välj en mapp som du vill importera textfilerna från i poppdialogen. Se skärmdump:

doc importera flera csv-text xml 1

4. Och klicka OK, och varje textfil i den valda mappen har importerats till ett kalkylblad i den aktiva arbetsboken. Se skärmdump:

doc importera flera csv-text xml 2doc importera flera csv-text xml 3

Kombinera enkelt flera ark / arbetsbok i ett ark eller arbetsbok

Att kombinera flera ark eller arbetsböcker till ett ark eller arbetsbok kan vara snedigt i Excel, men med Kombinera funktion i Kutools för Excel, du kan kombinera sammanfoga dussintals ark / arbetsböcker till ett ark eller arbetsbok, du kan också konsolidera arken i ett med flera klick.  Klicka för fullfjädrad 30 dagars gratis provperiod!
kombinera lakan
 
Kutools för Excel: med mer än 300 praktiska Excel-tillägg, gratis att prova utan begränsningar i 30 dagar.

För att importera alla csv-filer från en mapp till ett enda ark kan du använda VBA-koden nedan.

1. Aktivera ett tomt kalkylblad och tryck på Alt + F11 nycklar för att öppna Microsoft Visual Basic för applikationer fönster.

2. klick Insert > Modulernaoch klistra in under VBA i det nya Modulerna fönster.

VBA: Importera csv-filer från en mapp till ett kalkylblad

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. Tryck F5 eller klicka run för att utföra VBA, och en dialogruta dyker upp för att välja en mapp som du vill importera alla csv-filer från. Se skärmdump:

doc importera flera csv-text xml 4

4. klick OK, och en dialog dyker upp för att påminna dig om rensa innehållet i det aktiva kalkylbladet innan du importerar, här klickar jag Ja. Se skärmdump:

doc importera flera csv-text xml 5

Efter att ha klickat Jaimporteras alla csv-filer i den valda mappen till det aktuella arket och placerar data från kolumn A till höger. Se skärmdump:

doc importera flera csv-text xml 6doc importera flera csv-text xml 7

Dricks: Om du vill placera csv-filer horisontellt i ett kalkylblad kan du använda nedan 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 

doc importera flera csv-text xml 8


Om du vill importera alla XML-filer från en mapp till ett ark kan du använda nedanstående VBA-kod.

1. Välj ett tomt ark du vill placera de importerade uppgifterna och tryck på Alt + F11 för att aktivera Microsoft Visual Basic för applikationer fönster.

2. klick Insert > Modulerna, klistra in VBA-kod i Modulerna fönster.

VBA: Importera XML-filer från en mapp till ett kalkylblad.

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. klick run knapp eller F5 för att köra VBA och välj en mapp i poppdialogen, se skärmdump:

doc importera flera csv-text xml 9

4. klick OK, och alla XML-filer i den valda mappen importeras till det aktiva arket.


Om du inte känner till VBA, oroa dig, här introducerar jag ett praktiskt verktyg - Kutools för Excel till dig. Med sin kraftfulla Kombinera verktyget kan du snabbt kombinera flera xml-filer eller csv-filer i en arbetsbok eller ett Excel-ark.

Kutools för Excel, med mer än 300 praktiska funktioner, gör dina jobb enklare. 

När du har installerat Kutools för Excel, gör så här:(Gratis nedladdning Kutools för Excel nu!)

1. Aktivera Excel och klicka Kutools Plus > Kombinera. Se skärmdump :
doc kombinera 1

2. Och i steg 1 i Kombinera välj ett separationsalternativ efter behov. Se skärmdump:
doc kombinera 2

3. klick Nästa att gå till steg 2 i Kombinera, Klicka Lägg till för att lägga till filer från olika mappar eller filer från en mapp till Arbetsbok listan, och du kan också ange de ark du vill kombinera från Arbetsblad lista över rätt avsnitt. Se skärmdump:
doc kutools kombinera ark 3

4. klick Nästa till det sista steget av Kombinera, och du kan ange kombinationsalternativen.
doc kutools kombinera ark 4

5. klick Finish, en dialogruta dyker upp för att påminna dig om att du väljer en plats för att spara det nya kombinerade resultatet. Se skärmdump:
doc kombinera 5

6. klick Save. Alla ark som läggs till har kombinerats till ett nytt enda ark.
doc kombinera 6

Dricks: Med Kombinerakan du också kombinera flera CSV-filer forma flera mappar eller en mapp till ett ark eller arbetsbok.


Om du vill exportera varje ark som csv / text / pdf-fil till en mapp, Kutools för ExcelÄr Dela arbetsbok verktyget kan göra en tjänst för dig.

Efter gratis installation Kutools för Excel, gör så här:

1. Aktivera arbetsboken som du vill exportera dess kalkylblad och klicka på Kutools Plus > Arbetsbok > Dela arbetsbok. Se skärmdump:

doc importera flera csv-text xml 10

2. I Dela arbetsbok i dialogrutan kan du kontrollera de arknamn du behöver exportera, som standard är alla ark kontrollerade och markerade Ange spara format och välj det filformat som du vill spara från nedrullningslistan nedan. Se skärmdump:

doc importera flera csv-text xml 11

3. klick Split och välj en mapp som du vill spara delade filer i Bläddra efter mapp dialogruta, se skärmdump:

doc importera flera csv-text xml 12

4. klick OKnu exporteras alla markerade ark som nytt filformat i den valda mappen.


Relativa artiklar:


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
kte-flik 201905

Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
officetab botten
Sortera kommentarer efter
Kommentarer (36)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, tack så mycket för dessa kodprover! Den första (VBA: Importera alla textfiler från en mapp till en arbetsbok) är nästan exakt vad jag behöver. Jag skulle dock vilja välja vilka filer som ska importeras och inte automatiskt importera alla textfiler i en given mapp. Jag skulle också vilja att det avslutande innehållet i mina målblad skrivs över av innehållet i textfilerna. (Med koden ovan flyttas det befintliga innehållet till höger istället för att ersättas.) Hur går jag tillväga? Tack på förhand!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, jag skulle vilja förstå om VBA-koden för "Importera flera XML-filer från en mapp till ett enda ark med VBA". 1. Varför behövs 2 arbetsböcker istället för 1? 2. Det tar lite tid att ladda många xml-filer till excel, så finns det en mer effektiv kod? Eftersom jag inser när din kod kördes skapas många VBA-arbetsböcker som orsakade nedgången. Jag skulle verkligen uppskatta om du kan hjälpa mig att förstå!
Denna kommentar minimerades av moderatoren på webbplatsen
Ursäkta, jag förstod inte din första fråga, och angående den andra, den mer effektiva koden, jag har inte hittat den, om du vet, vänligen lämna en anteckning till mig, tack.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, jag skulle vilja förstå om VBA-koden för "Importera flera .txt-filer från en mapp till ett enda ark med VBA" efter nästa tillgängliga rad (inte horisontell). Snälla hjälp, brådskande
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, om du vill importera alla txt-filer från en mapp till ett enda ark, kan du använda ovanstående vba-kod för att importera txt-filer till en arbetsbok först, och sedan använda Kutools för Excels Combine Worksheets-funktion för att kombinera alla ark i en arbetsbok till ett ark, sedan txt-filerna i ett ark. Hoppas det hjälper dig.
Denna kommentar minimerades av moderatoren på webbplatsen
Problemet med detta är att det VBA-kommandot eller Kutools tillåter import av csv-filer med teckenkodsformatering. Förspänningen är västerländsk. Jag måste importera alla csv-filer som unicode-8
Denna kommentar minimerades av moderatoren på webbplatsen
koden för att konvertera från txt-filer fungerade inte för mig.
Denna kommentar minimerades av moderatoren på webbplatsen
Tyvärr fungerar inte den här artikeln för dig. Kan du beskriva ditt problem? Vad händer när koden körs? Och vilket system arbetar du med?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej! Koden "Importera csv-filer från en mapp till ett arbetsblad", fungerar för mig! Men den här koden fungerar inte för en tom .txt-fil. Finns det något sätt att behålla de tomma filerna?
Denna kommentar minimerades av moderatoren på webbplatsen
Tyvärr, jag vet inte varför man behöver importera en tom txt.file~Sätt bara in tomma rader för att separera innehållet.
Denna kommentar minimerades av moderatoren på webbplatsen
Mike: "koden för att konvertera från txt-filer fungerade inte för mig."

Jag hade samma problem. Makrofel uppstår om du har fler txt-filer att öppna än kalkylblad i din arbetsbok (standard är 3).
Jag fixade det genom att lägga till följande precis innan slingan går ut så att makrot skapar ett nytt ark efter resten
ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
Denna kommentar minimerades av moderatoren på webbplatsen
Tchad, detta fungerade perfekt för mig att importera flera textfiler. Tack.

Vet du om det finns ett sätt att dra filnamnen? Jag vill att textfilnamnen kopieras till varje excelarksflik.
Denna kommentar minimerades av moderatoren på webbplatsen
Helt fantastiskt! Testade att öppna alla csv-filer i ett kalkylblad och det fungerade utmärkt. Tack så mycket, verkligen!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, Jag försökte köra koden för .xml och det verkade inte fungera eftersom jag fick meddelandet "inga filer xml". Hur fixar man detta?
Denna kommentar minimerades av moderatoren på webbplatsen
Det kommer att visa ett meddelande "inga filer xml" medan din valda mapp inte innehåller xml-filer. Du kan välja rätt mapp som innehåller xml-filer i poppad dialogruta efter att ha kört koden för att importera dem till det aktiva arket.
Denna kommentar minimerades av moderatoren på webbplatsen
Det fungerade! Tack
Denna kommentar minimerades av moderatoren på webbplatsen
hej, säg mau tanya kalo impor txt-fil ke satu sheet gimana ya?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, rendy, vill du importera alla txt-filer till ett ark eller varje txt-fil till varje ark?
Denna kommentar minimerades av moderatoren på webbplatsen
jag har kod för att importera txt till ark varje txt till varje ark, men jag vill att varje txt ska importeras med dess namn till ark, jag menar byta namn på alla importerade ark med namnet på txt kodfilen bifogad .. Jag vill redigera detta fil för att lägga till kod för att byta namn på ark med txts namn ... tack.
Denna kommentar minimerades av moderatoren på webbplatsen
jag har kod för att importera txt till ark varje txt till varje ark, men jag vill att varje txt ska importeras med dess namn till ark, jag menar byta namn på alla importerade ark med namnet på txt kodfilen bifogad .. tack
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, Ramy, zahran, du kan prova nedanstående kod som kan importera textfilerna och byta namn på arknamnet till textfilnamnet.
Sub LoadPipeDelimitedFiles()
'Uppdatering avExtendoffice20180925
Dim xStrPath som sträng
Dim xFileDialog As FileDialog
Dim xFile As String
Dim xCount As Long
Dim xWS Som arbetsblad

Vid fel GoTo ErrHandler
Ställ in xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = Falskt
xFileDialog.title = "Välj en mapp [Kutools för Excel]"
Om xFileDialog.Show = -1 Då
xStrPath = xFileDialog.SelectedItems(1)
End If
Om xStrPath = "" Avsluta Sub
Application.ScreenUpdating = False
xFile = Dir(xStrPath & "\*.txt")
Gör medan xFile <> ""
xCount = xCount + 1
Ställ in xWS = Sheets(xCount)
xWS.Välj
xWS.Name = "TEXT " & Left(xFile, Len(xFile) - 4)
Med ActiveSheet.QueryTables.Add(Connection:="TEXT;" _
& xStrPath & "\" & xFile, Destination:=Range("A1"))
.Name = "a" & xCount
.FieldNames = True
.RowNumbers = Falskt
.FillAdjacentFormulas = False
.PreserveFormatting = Sant
.RefreshOnFileOpen = Falskt
.RefreshStyle = xlInsertDeleteCells
.SavePassword = Falskt
.SaveData = Sant
.AdjustColumnWidth = Sant
.RefreshPeriod = 0
.TextFilePromptOnRefresh = Falskt
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = Falskt
.TextFileTabDelimiter = Falskt
.TextFileSemicolonDelimiter = Falskt
.TextFileCommaDelimiter = Falskt
.TextFileSpaceDelimiter = Falskt
.TextFileOtherDelimiter = "|"
.TextFileColumnDataTypes = Array(1, 1, 1)
.TextFileTrailingMinusNumbers = Sant
.Refresh BackgroundQuery:=False
xFile = Dir
Sluta med
loop
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
MsgBox "inga filer txt", , "Kutools för Excel"
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Hej! Jag använde koden för att slå samman flera XML-filer till en, men tyvärr blev kolumnerna trassliga. De 5 filerna som slogs samman hade alla samma format. Finns det på något sätt att fixa detta? Jag undrade också om det fanns ett sätt att bli av med rubrikerna som dupliceras när filerna slås samman. Tack!
Denna kommentar minimerades av moderatoren på webbplatsen
Tack. Den här sidan har varit till stor hjälp. Jag har ett problem som jag inte kan lista ut. Jag försöker importera flera csv-filer till ett excel separata ark i excel och har varje ark bytt namn efter filnamnet på csv-filen. Jag vet att detta täcktes nedan för en txt-fil men jag arbetar med csv-filer. Tack på förhand.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej - jag använder importera alla csv-filer till en fil som listas ovan "Importera flera Csv-filer från en mapp till ett enda ark med VBA" - jag skulle vilja definiera mappen den samlar in data från utan att behöva välja manuellt Det. Kan detta göras? tack - SW.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, Scott W, jag hittade en VBA-kod som kan hjälpa dig.
Explicit alternativ

Sub ImportCSVsWithReference()
'Författare: Jerry Beaucaire
'Datum: 10-16-2010
'Sammanfattning: Importera alla CSV-filer från en mapp till ett enda ark
' lägga till ett fält i kolumn A med CSV-filnamnen

Dim wbCSV Som arbetsbok
Dim wsMstr Som arbetsblad: Ställ in wsMstr = ThisWorkbook.Sheets("Sheet1")
Dim fPath As String: fPath = " C:\Users\DT168\Desktop\New folder\" 'sökväg till CSV-filer, inkludera den sista \
Dim fCSV som sträng

Om MsgBox("Rensa det befintliga arket innan du importerar?", vbYesNo, "Rensa?") _
= vbYes Sedan wsMstr.UsedRange.Clear

Application.ScreenUpdating = Falskt 'påskynda makro

fCSV = Dir(fPath & "*.csv") 'starta CSV-fillistan

Gör medan Len(fCSV) > 0
'öppna en CSV-fil
Ställ in wbCSV = Workbooks.Open(fPath & fCSV)
'infoga kol A och lägg till CSV-namn
Kolumner(1). Infoga xlShiftToRight
Kolumner(1).SpecialCells(xlBlanks).Value = ActiveSheet.Name
kopiera datum till huvudarket och stäng källfilen
ActiveSheet.UsedRange.Copy wsMstr.Range("A" & Rows.Count).End(xlUp).Offset(1)
wbCSV.Stäng Falskt
'klar nästa CSV
fCSV = Dir
loop

Application.ScreenUpdating = True
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Hur man eliminerar dubbletter av rubriker och kolumn för CSV-filnamn. Snälla hjälp....Jag har gått igenom flera artiklar, men alla ger tyvärr samma resultat.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej - Jag har använt dina VBA-koder för att extrahera data från flera CSV-filer till excel-filer (koden på den här sidan) och konvertera csv-filer till excel-filer (den här: https://www.extendoffice.com/documents/excel/4615-excel-batch-convert-csv-to-xls-xlsx.html), med fantastiska resultat. De hjälpte mig att spara mycket tid.

Jag märker dock ett vanligt problem med båda dessa typer av koder. För att förtydliga är mitt system inställt för att använda de europeiska standarderna för datum, medan några av de CSV-filer jag fick för mitt arbete innehåller datum i amerikanska standarder. Det första problemet är att när jag extraherar eller konverterar data från en CSV-fil som innehåller datum i USA-format, blir alla dessa datum omvända (matchar EU-standarderna som används av mitt system). Det här är bra, men det orsakade mig också problem eftersom jag inte visste att koderna skulle ändra datumen för mig, så jag fortsatte och gjorde samma sak igen. Det andra problemet är, för CSV-filer som innehåller datum som redan är i samma format som det som används av mitt system (EU-standarder), är endast de tvetydiga datumen omvända (dvs. 04/05/2019 - 05/04/2019), medan de som är för uppenbara förblir oförändrade (dvs 30/04/2019).

Vad jag skulle vilja att koderna ska göra är exakt samma sak som de visas här, bara att de ska kopiera och klistra in data (särskilt datum) i exakt de format som används i originalfilerna. Detta skulle hjälpa till att förhindra eventuella förvirringar och misstag. Jag skulle vilja lära mig VBA så att jag en dag kan skriva mina egna koder, men för närvarande kan jag inte ens modifiera delar av de befintliga koderna för att passa mina behov. Så om du kan hjälpa, snälla berätta för mig var jag ska lägga de modifierade koderna (som du kommer på) till de befintliga koderna. Jag uppskattar all feedback och all support jag kan få. Tack allihopa!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Marshall, i Workbooks.Open-metoden, lägg till alternativet Local:=True.

dvs
Ställ in xWb = Workbooks.Open(xStrPath & "\" & xFile, Local:=True)
Denna kommentar minimerades av moderatoren på webbplatsen
Tack så mycket Robert. Förlåt att jag inte kunde svara dig tidigare. Jag har inte fått något meddelande förrän nu. Jag kommer att testa detta och återkomma till dig senare för att meddela dig om detta fungerar.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej robert
Det är jag igen. Det tog mig ett tag att faktiskt ha tid att ta reda på vilken del av koden "Local:True"-delen skulle läggas till. Resultatet blev bra eftersom datumen inte längre är omvända. Tack!
För alla som har samma problem, ändra bara denna rad:
Ställ in xWb = Workbooks.OpenXML(xStrPath & "\" & xFile)

Till detta:
Ställ in xWb = Workbooks.Open(xStrPath & "\" & xFile, Local:=True)
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, finns det något sätt att importera flera csv-filer med semikolon som separator? Tack!
PS Bra artikel!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej laget

Jag använder koden för att importera flera XML-filer till ett enda ark med VBA, men problemet jag står inför är när antalet rader når cirka 650000 XNUMX, då bearbetar det inte resten av xml-filerna i mappen och ger ett felmeddelande att inga xml-filer . Behöver ditt stöd för att öka antalet.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej experter

Jag använder ovanstående kod för att importera flera xml-filer till ett kalkylblad med VBA, men problemet jag står inför är när antalet rader når 1 650000 i ett kalkylblad så bearbetar den här koden inte resten av xml-filerna i mappen. Det ger ett felmeddelande "inga filer.xml". Kräv ditt vänliga stöd
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Instruktionerna för att importera flera xml-filer till en flik i ett Excel-dokument fungerar men undrade hur man får det att rada upp kolumnerna. Mina xmls har inte alla samma taggar. De är inställda så att om xml-filen inte hade några data för vissa rubriker(taggar) så saknas rubriken i den xml-filen. Finns det något sätt att få xml-filerna att importera så att samma rubriker från varje xml och tillhörande data hamnar i samma excel-kolumn?
Det finns inga kommentarer här ännu
Ladda fler
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL