Note: The other languages of the website are Google-translated. Back to English
  • Documenti
  • Excel
  • Come importare rapidamente in batch più file csv / text / xml in Excel?

Come importare rapidamente in batch più file csv / text / xml in Excel?

In Excel, potresti aver legato per salvare una cartella di lavoro come file csv, file di testo o file xml, ma hai mai provato a importare più file csv / text / xml da una cartella in una cartella di lavoro o in un foglio di lavoro? In questo articolo, introduco alcuni metodi per importarli rapidamente in batch.

Importa più file di testo da una cartella in ogni foglio di lavoro di una cartella di lavoro con VBA

Importa più file CSV da una cartella in un unico foglio con VBA

Importa più file xml da una cartella in un unico foglio con VBA

Importa o combina più file xml / csv in un foglio o una cartella di lavoro con Kutools per Excel buona idea 3

Esporta ogni foglio come csv / text / pdf in una cartella con Kutools per Excelbuona idea 3


Per importare file di testo da una cartella a una cartella di lavoro, puoi usare sotto VBA per gestirlo rapidamente.

1. Abilitare una cartella di lavoro vuota e premere Alt + F11 chiavi per aprire Microsoft Visual Basic, Applications Edition finestra.

2. Clic inserire > Moduloe incolla il VBA nel file Modulo finestra.

VBA: importa tutti i file di testo da una cartella in una cartella di lavoro

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. Stampa F5 chiave o Correre pulsante per eseguire VBA e selezionare una cartella da cui si desidera importare i file di testo nella finestra di dialogo popping. Vedi screenshot:

doc importa più testo csv xml 1

4. E fare clic su OKe ogni file di testo nella cartella selezionata è stato importato in un foglio di lavoro della cartella di lavoro attiva. Vedi screenshot:

doc importa più testo csv xml 2doc importa più testo csv xml 3

Combina facilmente più fogli / cartella di lavoro in un unico foglio o cartella di lavoro

Combinare più fogli o cartelle di lavoro in un unico foglio o cartella di lavoro può essere fastidioso in Excel, ma con l'estensione Combinare funzione in Kutools per Excel, puoi combinare unire dozzine di fogli / cartelle di lavoro in un foglio o cartella di lavoro, inoltre, puoi consolidare i fogli in uno solo con diversi clic.  Fare clic per tutte le funzionalità
30
giorni di prova gratuita!
unire i fogli
 
Kutools per Excel: con più di
300
utili componenti aggiuntivi di Excel, da provare gratuitamente senza limitazioni
30
giorni;

Per importare tutti i file CSV da una cartella in un unico foglio, puoi utilizzare il codice VBA sottostante.

1. Abilitare un foglio di lavoro vuoto e premere Alt + F11 chiavi per aprire Microsoft Visual Basic, Applications Edition finestra.

2. Clic inserire > Moduloe incolla sotto VBA nel nuovo Modulo finestra.

VBA: importa i file CSV da una cartella in un foglio di lavoro

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. Stampa F5 tasto o fare clic Correre per eseguire il VBA e viene visualizzata una finestra di dialogo per selezionare una cartella da cui si desidera importare tutti i file CSV. Vedi screenshot:

doc importa più testo csv xml 4

4. Clic OKe viene visualizzata una finestra di dialogo per ricordarti se cancellare il contenuto del foglio di lavoro attivo prima dell'importazione, qui faccio clic. Vedi screenshot:

doc importa più testo csv xml 5

dopo aver fatto clic , tutti i file CSV nella cartella selezionata vengono importati nel foglio corrente e posizionano i dati dalla Colonna A a destra. Vedi screenshot:

doc importa più testo csv xml 6doc importa più testo csv xml 7

Mancia: Se vuoi posizionare i file CSV orizzontalmente in un foglio di lavoro, puoi usare sotto 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 importa più testo csv xml 8


Se desideri importare tutti i file XML da una cartella in un unico foglio, puoi utilizzare il codice VBA sottostante.

1. Selezionare un foglio bianco in cui inserire i dati importati e premere Alt + F11 tasti per abilitare Microsoft Visual Basic, Applications Edition finestra.

2. Clic inserire > Modulo, incolla il codice VBA nel file Modulo finestra.

VBA: importa file XML da una cartella in un foglio di lavoro.

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 Correre pulsante o F5 chiave per eseguire VBA e selezionare una cartella nella finestra di dialogo popping, vedi screenshot:

doc importa più testo csv xml 9

4. Clic OKe tutti i file XML nella cartella selezionata vengono importati nel foglio attivo.


Se non hai familiarità con VBA, preoccupati, qui presento uno strumento utile: Kutools for Excel per te. Con i suoi potenti Combinare utility, puoi combinare rapidamente più file xml o file csv in una cartella di lavoro o in un foglio Excel.

Kutools for Excel, con oltre
300
 funzioni utili, rende il tuo lavoro più facile. 

Dopo l'installazione Kutools per Excel, per favore fai come di seguito:(Scarica subito Kutools per Excel!)

1. Active Excel e fare clic su Kutools Plus > Combinare. Vedi screenshot :
doc combinare 1

2. E in passaggio 1 di Combina finestra di dialogo, scegli un'opzione di separazione di cui hai bisogno. Vedi screenshot:
doc combinare 2

3. Clic Successiva andare passaggio 2 del Combine, fare clic su Aggiungi per aggiungere file da varie cartelle o file da una cartella a Cartella di lavoro e puoi anche specificare i fogli da cui desideri combinare Foglio di lavoro elenco delle sezioni di destra. Vedi screenshot:
doc kutools combina fogli 3

4. Clic Successiva all'ultimo passaggio di Combinaree puoi specificare le opzioni di combinazione.
doc kutools combina fogli 4

5. Clic Fine, viene visualizzata una finestra di dialogo per ricordare di selezionare una posizione in cui salvare il nuovo risultato combinato. Vedi screenshot:
doc combinare 5

6. Clic Risparmi. Tutti i fogli aggiunti sono stati combinati in un nuovo foglio singolo.
doc combinare 6

Mancia: Con una lunga Combinare, puoi anche combinare più file File CSV formare più cartelle o una cartella in un foglio o cartella di lavoro.


Se desideri esportare ogni foglio come file csv / testo / pdf in una cartella, Kutools for Excel'S Cartella di lavoro divisa l'utilità può farti un favore.

Dopo installazione gratuita Kutools per Excel, per favore fai come di seguito:

1. Abilitare la cartella di lavoro di cui si desidera esportare i fogli di lavoro e fare clic su Kutools Plus > Cartella di lavoro > Cartella di lavoro divisa. Vedi screenshot:

doc importa più testo csv xml 10

2. Nel Cartella di lavoro divisa finestra di dialogo, puoi controllare i nomi dei fogli che devi esportare, di default tutti i fogli sono controllati e spuntati Specifica il formato di salvataggio e selezionare il formato di file che si desidera salvare dal seguente elenco a discesa. Vedi screenshot:

doc importa più testo csv xml 11

3. Clic Diviso e seleziona una cartella in cui salvare i file divisi in Cerca cartella finestra di dialogo, vedi screenshot:

doc importa più testo csv xml 12

4. Clic OK, ora tutti i fogli selezionati vengono esportati come nuovo formato di file nella cartella selezionata.


Articoli relativi:


I migliori strumenti per la produttività in ufficio

Kutools per Excel risolve la maggior parte dei tuoi problemi e aumenta la tua produttività di
80%

  • Riutilizzo: Inserisci rapidamente formule complesse, grafici e tutto ciò che hai usato prima; Crittografa celle con password; Crea mailing list e invia email ...
  • Bar Super Formula (modifica facilmente più righe di testo e formula); Layout di lettura (leggi e modifica facilmente un gran numero di celle); Incolla su intervallo filtrato...
  • Unisci celle / righe / colonne senza perdere dati; Contenuto delle celle divise; Combina righe / colonne duplicate... Impedisci celle duplicate; Confronta intervalli...
  • Seleziona Duplica o Unico Righe; Seleziona Righe vuote (tutte le celle sono vuote); Super Find e Fuzzy Find in molte cartelle di lavoro; Selezione casuale ...
  • Copia esatta Più celle senza modificare il riferimento della formula; Riferimenti di creazione automatica a più fogli; Inserisci punti elenco, Caselle di controllo e altro ...
  • Estrai testo, Aggiungi testo, Rimuovi per posizione, Rimuovi spazio; Creare e stampare totali parziali di paging; Converti contenuto e commenti tra celle...
  • Super filtro (salva e applica schemi di filtri ad altri fogli); Ordinamento avanzato per mese / settimana / giorno, frequenza e altro; Filtro speciale in grassetto, corsivo ...
  • Combina cartelle di lavoro e fogli di lavoro; Unisci tabelle in base a colonne chiave; Suddividi i dati in più fogli; Conversione in batch xls, xlsx e PDF...
  • Più di
    300
    potenti caratteristiche
    . Supporta Office/Excel
    2007-2019 e 365
    . Supporta tutte le lingue. Facile implementazione nella tua azienda o organizzazione. Funzionalità complete
    30
    prova gratuita di un giorno. Garanzia di rimborso di 60 giorni.
scheda kte 201905

Scheda Office porta l'interfaccia a schede a Office e semplifica notevolmente il lavoro

  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede della stessa finestra, piuttosto che in nuove finestre.
  • Aumenta la tua produttività di
    50%
    e riduce centinaia di clic del mouse per te ogni giorno!
fondo officetab
Commenti (35)
Ancora nessuna valutazione. Puoi essere il primo a votare!
Questo commento è stato fatto dal moderatore sul sito
Ciao, grazie mille per quei campioni di codice! Il primo (VBA: importa tutti i file di testo da una cartella in una cartella di lavoro) è quasi esattamente quello di cui ho bisogno. Vorrei, tuttavia, selezionare quali file importare e non importare automaticamente tutti i file di testo in una determinata cartella. Vorrei anche che il contenuto in uscita dei miei fogli di destinazione venisse sovrascritto dal contenuto dei file di testo. (Con il codice sopra, il contenuto esistente viene spostato a destra invece di essere sostituito.) Come posso farlo? Grazie in anticipo!
Questo commento è stato fatto dal moderatore sul sito
Ciao, vorrei capire il codice VBA per "Importa più file XML da una cartella in un foglio singolo con VBA". 1. Perché sono necessarie 2 cartelle di lavoro invece di 1? 2. Ci vuole del tempo per caricare molti file XML in Excel, quindi esiste un codice più efficiente? Perché mi rendo conto che quando il tuo codice è stato eseguito, vengono create molte cartelle di lavoro VBA che hanno causato il rallentamento. Apprezzerei davvero se mi aiutaste a capire!
Questo commento è stato fatto dal moderatore sul sito
Scusa, non ho capito la tua prima domanda, e riguardo alla seconda, il codice più efficace, non l'ho trovato, se lo sai, per favore lasciami una nota, grazie.
Questo commento è stato fatto dal moderatore sul sito
Ciao, vorrei capire il codice VBA per "Importare più file .txt da una cartella a un singolo foglio con VBA" dalla prossima riga disponibile (non orizzontale). Per favore aiutatemi, urgente
Questo commento è stato fatto dal moderatore sul sito
Ciao, se desideri importare tutti i file txt da una cartella in un singolo foglio, puoi utilizzare il codice vba sopra per importare prima i file txt in una cartella di lavoro, quindi applicare Kutools for Excel'S Combina fogli di lavoro funzione per combinare tutti i fogli di una cartella di lavoro a un foglio, quindi i file txt in un foglio. Spero che ti aiuti.
Questo commento è stato fatto dal moderatore sul sito
Il problema con questo è che il comando VBA né Kutools consentono di importare i file CSV con la formattazione del codice carattere. Il precarico è occidentale. Devo importare tutti i file CSV come unicode-8
Questo commento è stato fatto dal moderatore sul sito
il codice per la conversione da file txt non ha funzionato per me.
Questo commento è stato fatto dal moderatore sul sito
Siamo spiacenti, questo articolo non funziona per te. Potresti descrivere il tuo problema? Cosa succede durante l'esecuzione del codice? E che sistema lavori?
Questo commento è stato fatto dal moderatore sul sito
Ciao! Il codice "Importa file CSV da una cartella in un foglio di lavoro", funziona per me! Ma questo codice non funziona per un file .txt vuoto. C'è un modo per mantenere anche i file vuoti?
Questo commento è stato fatto dal moderatore sul sito
Siamo spiacenti, non so perché è necessario importare un txt.file vuoto ~ Basta inserire righe vuote per separare i contenuti.
Questo commento è stato fatto dal moderatore sul sito
Mike: "il codice per la conversione da file txt non ha funzionato per me."

Ho avuto lo stesso problema. Gli errori della macro escono se hai più file txt da aprire rispetto ai fogli di lavoro nella cartella di lavoro (l'impostazione predefinita è 3).
L'ho risolto aggiungendo quanto segue appena prima che il ciclo esca in modo che la macro crei un nuovo foglio dopo il resto
ActiveWorkbook.Sheets.Add After:=Fogli di lavoro(Fogli di lavoro.Count)
Questo commento è stato fatto dal moderatore sul sito
Ciad, per me ha funzionato perfettamente per importare più file di testo. Grazie.

Sai se c'è un modo per estrarre i nomi dei file? Voglio che i nomi dei file di testo vengano copiati in ciascuna scheda del foglio Excel.
Questo commento è stato fatto dal moderatore sul sito
Assolutamente fantastico! Ho provato ad aprire tutti i file CSV in un foglio di lavoro e ha funzionato magnificamente. Grazie mille, davvero!
Questo commento è stato fatto dal moderatore sul sito
Ciao, ho provato a eseguire il codice per .xml e non sembrava funzionare poiché ho ricevuto il messaggio "no files xml". Come risolvere questo problema?
Questo commento è stato fatto dal moderatore sul sito
Apparirà un messaggio "nessun file xml" mentre la cartella selezionata non contiene i file xml. È possibile selezionare la cartella corretta che contiene i file xml nella finestra di dialogo popping dopo aver eseguito il codice per importarli nel foglio attivo.
Questo commento è stato fatto dal moderatore sul sito
Ha funzionato! Grazie
Questo commento è stato fatto dal moderatore sul sito
ciao, saya mau tanya kalo impor txt file ke satu foglio gimana ya?
Questo commento è stato fatto dal moderatore sul sito
Ciao, Rendy, vorresti importare tutti i txt su un foglio o ogni txt su ogni foglio?
Questo commento è stato fatto dal moderatore sul sito
ho il codice per importare i txt nei fogli ogni txt in ogni foglio, ma voglio che ogni txt sia importato con il suo nome nel foglio, intendo rinominare ogni foglio importato con il nome del txt il file di codice allegato .. voglio modificare questo file per aggiungere codice per rinominare fogli con nome txts ... grazie.
Questo commento è stato fatto dal moderatore sul sito
ho il codice per importare i txt nei fogli ogni txt in ogni foglio, ma voglio che ogni txt venga importato con il suo nome nel foglio, intendo rinominare ogni foglio importato con il nome del txt il file di codice allegato .. grazie
Questo commento è stato fatto dal moderatore sul sito
Ciao, Ramy, zahran, puoi provare sotto il codice che può importare i file di testo e rinominare il nome del foglio con il nome del file di testo.
Sub LoadPipeDelimitedFiles()
'Aggiorna entroExtendoffice20180925
Dim xStrPath come stringa
Dim xFileDialog come FileDialog
Dim xFile come stringa
Dim x Conte fino a quando
Dim xWS come foglio di lavoro

In errore Vai a ErrHandler
Imposta xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = Falso
xFileDialog.title = "Seleziona una cartella [Ktools for Excel]"
Se xFileDialog.Show = -1 Allora
xStrPath = xFileDialog.SelectedItems(1)
End If
Se xStrPath = "" Quindi esci da Sub
Application.ScreenUpdating = False
xFile = Dir(xStrPath & "\*.txt")
Fai mentre xFile <> ""
xConteggio = xConteggio + 1
Imposta xWS = Fogli(xCount)
xWS.Select
xWS.Name = "TESTO" & Sinistra(xFile, Len(xFile) - 4)
Con ActiveSheet.QueryTables.Add(Connection:="TEXT;" _
& xStrPath & "\" & xFile, Destinazione:=Intervallo("A1"))
.Nome = "a" & xCount
.FieldNames = Vero
.RowNumbers = Falso
.FillAdjacentFormulas = Falso
.PreserveFormatting = Vero
.RefreshOnFileOpen = Falso
.RefreshStyle = xlInsertDeleteCells
.SavePassword = Falso
.SaveData = Vero
.AdjustColumnWidth = Vero
.RefreshPeriod = 0
.TextFilePromptOnRefresh = Falso
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimitato
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = Falso
.TextFileTabDelimiter = Falso
.TextFileSemicolonDelimiter = Falso
.TextFileCommaDelimiter = Falso
.TextFileSpaceDelimiter = Falso
.TextFileOtherDelimiter = "|"
.TextFileColumnDataTypes = Array(1, 1, 1)
.TextFileTrailingMinusNumbers = Vero
.Aggiorna query in background:=falso
xFile = Dir
Fine Con
Ciclo continuo
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
MsgBox "nessun file txt", , "Ktools per Excel"
End Sub
Questo commento è stato fatto dal moderatore sul sito
Ciao! Ho usato il codice per unire più file XML in uno, ma sfortunatamente le colonne sono state incasinate. I 5 file uniti avevano tutti lo stesso formato. Esiste un modo per risolvere questo problema? Mi chiedevo anche se esistesse un modo per sbarazzarsi delle intestazioni che vengono duplicate quando i file vengono uniti. Grazie!
Questo commento è stato fatto dal moderatore sul sito
Grazie. Questo sito è stato di grande aiuto. Ho un problema che non riesco a capire. Sto cercando di importare più file CSV in fogli separati di Excel in Excel e di rinominare ogni foglio con il nome del file CSV. So che questo è stato trattato di seguito per un file txt ma sto lavorando con file csv. Grazie in anticipo.
Questo commento è stato fatto dal moderatore sul sito
Ciao - Sto usando l'importazione di tutti i file CSV in un file sopra elencato "Importa più file CSV da una cartella in un singolo foglio con VBA" - Vorrei definire la cartella da cui raccoglie i dati senza dover scegliere manualmente esso. Può essere fatto? grazie - SW.
Questo commento è stato fatto dal moderatore sul sito
Ciao, Scott W, ho trovato che un codice VBA può aiutarti.
Opzione esplicita

Sub Import CSVsWithReference()
'Autore: Jerry Beaucaire
'Data: 10/16/2010
'Riepilogo: importa tutti i file CSV da una cartella in un unico foglio
' aggiungendo un campo nella colonna A che elenca i nomi dei file CSV

Dim wbCSV come cartella di lavoro
Oscura wsMstr come foglio di lavoro: imposta wsMstr = ThisWorkbook.Sheets("Sheet1")
Dim fPath As String: fPath = " C:\Users\DT168\Desktop\New folder\" 'percorso dei file CSV, includi il \ finale
Dim fCSV come stringa

If MsgBox("Cancella il foglio esistente prima dell'importazione?", vbYesNo, "Cancella?") _
= vbYes Quindi wsMstr.UsedRange.Clear

Application.ScreenUpdating = False 'accelerare la macro

fCSV = Dir(fPath & "*.csv") 'avvia l'elenco dei file CSV

Fai mentre Len(fCSV) > 0
'apri un file CSV
Imposta wbCSV = Cartelle di lavoro.Open(fPath & fCSV)
'inserisci col A e aggiungi il nome CSV
Colonne(1).Inserisci xlShiftToRight
Columns(1).SpecialCells(xlBlanks).Value = ActiveSheet.Name
'copia la data nel foglio principale e chiudi il file sorgente
ActiveSheet.UsedRange.Copy wsMstr.Range("A" & Rows.Count).End(xlUp).Offset(1)
wbCSV.Chiudi Falso
'pronto prossimo CSV
fCSV = Dir
Ciclo continuo

Application.ScreenUpdating = True
End Sub
Questo commento è stato fatto dal moderatore sul sito
Come eliminare l'intestazione duplicata e la colonna del nome del file CSV. Per favore aiutatemi... Ho esaminato diversi articoli, ma sfortunatamente tutti danno lo stesso risultato.
Questo commento è stato fatto dal moderatore sul sito
Ciao - Ho usato i tuoi codici VBA per estrarre dati da più file CSV in file excel (il codice in questa pagina) e convertire file CSV in file excel (questo: https://www.extendoffice.com/documents/excel/4615-excel-batch-convert-csv-to-xls-xlsx.html), con ottimi risultati. Mi hanno aiutato a risparmiare molto tempo.

Tuttavia, noto un problema comune con entrambi questi tipi di codici. Per chiarire, il mio sistema è impostato per utilizzare gli standard europei per le date, mentre alcuni dei file CSV che ho ricevuto per il mio lavoro contengono date negli standard statunitensi. Il primo problema è che quando estraggo o converto dati da un file CSV che contiene date in formato USA, tutte queste date vengono invertite (corrispondente agli standard UE utilizzati dal mio sistema). Questo è fantastico, ma mi ha anche causato problemi poiché non sapevo che i codici avrebbero invertito le date per me, quindi sono andato avanti e ho fatto di nuovo la stessa cosa. Il secondo problema è che, per i file CSV che contengono date già nello stesso formato di quello utilizzato dal mio sistema (standard UE), vengono invertite solo le date ambigue (es. 04/05/2019 - 05/04/2019), mentre quelle troppo evidenti restano invariate (es. 30/04/2019).

Quello che vorrei che i codici facessero è esattamente la stessa cosa che vengono mostrati qui, solo che dovrebbero copiare e incollare i dati (soprattutto le date) nei formati esatti utilizzati nei file originali. Ciò aiuterebbe a prevenire possibili confusioni ed errori. Mi piacerebbe imparare VBA in modo da poter un giorno scrivere i miei codici, ma per ora non sono nemmeno in grado di modificare parti dei codici esistenti per soddisfare le mie esigenze. Quindi, se puoi aiutarmi, per favore dimmi dove dovrei mettere i codici modificati (che ti vengono in mente) ai codici esistenti. Apprezzo tutti i feedback e il supporto che posso ottenere. Grazie a tutti!
Questo commento è stato fatto dal moderatore sul sito
Ciao Marshall, nel metodo Workbooks.Open, aggiungi l'opzione Local:=True.

vale a dire
Imposta xWb = Cartelle di lavoro.Open(xStrPath & "\" & xFile, Local:=True)
Questo commento è stato fatto dal moderatore sul sito
Grazie mille Roberto. Scusa se non ho potuto risponderti prima. Non ho ricevuto alcuna notifica fino ad ora. Lo proverò e tornerò da te più tardi per farti sapere se funziona.
Questo commento è stato fatto dal moderatore sul sito
Ciao Robert,
Sono di nuovo io. Mi ci è voluto un po' per avere effettivamente il tempo di capire a quale parte del codice dovesse essere aggiunta la parte "Local:True". Il risultato si è rivelato ottimo in quanto le date non sono più invertite. Grazie!
Per chi ha lo stesso problema, basta cambiare questa riga:
Imposta xWb = Cartelle di lavoro.OpenXML(xStrPath & "\" & xFile)

A questa:
Imposta xWb = Cartelle di lavoro.Open(xStrPath & "\" & xFile, Local:=True)
Questo commento è stato fatto dal moderatore sul sito
Ciao, c'è un modo per importare più file CSV con punto e virgola come separatore? Grazie!
PS Bell'articolo!
Questo commento è stato fatto dal moderatore sul sito
Hi squadra

Sto usando il codice per importare più file XML in un foglio singolo con VBA, tuttavia il problema che sto affrontando è quando il conteggio delle righe raggiunge circa 650000, quindi non elabora il resto dei file xml nella cartella e dà un errore che nessun file xml . Hai bisogno del tuo supporto per aumentare questo conteggio.
Questo commento è stato fatto dal moderatore sul sito
Ciao esperti

Sto usando il codice sopra per importare più file xml in 1 foglio di lavoro usando VBA, tuttavia il problema che sto affrontando è quando il conteggio delle righe raggiunge 650000 in un foglio di lavoro, quindi questo codice non elabora il resto dei file xml nella cartella. Dà un errore "no files.xml". Richiedi il tuo gentile supporto
Questo commento è stato fatto dal moderatore sul sito
HelloLe istruzioni per importare più XML in una scheda di un documento Excel funzionano ma mi chiedevo come farlo allineare le colonne. I miei xml non hanno tutti gli stessi tag. Sono impostati in modo tale che se l'xml non ha dati per alcune intestazioni (tag), l'intestazione manca da quell'xml. C'è un modo per importare gli xml in modo che le stesse intestazioni di ciascun XML e i dati associati cadano nella stessa colonna di Excel?
Non ci sono ancora commenti pubblicati qui
Carica Altre
Lasciate i vostri commenti
Pubblicazione come ospite
×
Valuta questo post:
0   Personaggi
Posizioni suggerite

Seguici

Copyright © 2009 - www.extendoffice.com. | Tutti i diritti riservati. Offerto da ExtendOffice, | Mappa del sito
Microsoft e il logo Office sono marchi o marchi registrati di Microsoft Corporation negli Stati Uniti e / o in altri paesi.
Protetto da Sectigo SSL