Come importare rapidamente più file csv/testo/xml in Excel?
In Excel, potresti aver provato a salvare una cartella di lavoro come file csv, file di testo o file xml, ma hai mai tentato di importare più file csv/testo/xml da una cartella in una cartella di lavoro o in un foglio di lavoro? In questo articolo, ti presento 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
Per importare file di testo da una cartella in una cartella di lavoro, puoi utilizzare il seguente codice VBA per gestirlo rapidamente.
1. Apri una cartella di lavoro vuota e premi i tasti Alt + F11 per aprire la finestra Microsoft Visual Basic for Applications.
2. Clicca su Inserisci > Modulo e incolla il codice VBA nella finestra del Modulo.
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. Premi il tasto F5 o clicca sul pulsante Esegui per eseguire il codice VBA e seleziona una cartella da cui desideri importare i file di testo nella finestra di dialogo che appare. Vedi screenshot:
4. Clicca su OK e ogni file di testo nella cartella selezionata verrà importato in un foglio di lavoro della cartella di lavoro attiva. Vedi screenshot:



Sblocca la Magia di Excel con Kutools AI
- Esecuzione Intelligente: Esegui operazioni sulle celle, analizza i dati e crea grafici — tutto guidato da semplici comandi.
- Formule Personalizzate: Genera formule su misura per ottimizzare i tuoi flussi di lavoro.
- Codifica VBA: Scrivi e implementa codice VBA senza sforzo.
- Interpretazione delle Formule: Comprendi facilmente formule complesse.
- Traduzione del Testo: Superare le barriere linguistiche all'interno dei tuoi fogli di calcolo.
Importa più file csv da una cartella in un singolo foglio con VBA
Per importare tutti i file csv da una cartella in un singolo foglio, puoi utilizzare il seguente codice VBA.
1. Apri un foglio di lavoro vuoto e premi i tasti Alt + F11 per aprire la finestra Microsoft Visual Basic for Applications.
2. Clicca su Inserisci > Modulo e incolla il seguente codice VBA nella nuova finestra del Modulo.
VBA: Importa 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. Premi il tasto F5 o clicca sul pulsante Esegui per eseguire il codice VBA e si aprirà una finestra di dialogo per selezionare una cartella da cui vuoi importare tutti i file csv. Vedi screenshot:
4. Clicca su OK e apparirà una finestra di dialogo per chiederti se vuoi cancellare il contenuto del foglio di lavoro attivo prima dell'importazione; qui clicco su Sì. Vedi screenshot:
Dopo aver cliccato su Sì, tutti i file csv nella cartella selezionata vengono importati nel foglio corrente, posizionando i dati dalla Colonna A verso destra. Vedi screenshot:


Consiglio: Se desideri posizionare i file csv orizzontalmente in un foglio di lavoro, puoi utilizzare il seguente codice 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
Importa più file xml da una cartella in un singolo foglio con VBA
Se vuoi importare tutti i file XML da una cartella in un singolo foglio, puoi utilizzare il seguente codice VBA.
1. Seleziona un foglio vuoto in cui desideri inserire i dati importati e premi i tasti Alt + F11 per aprire la finestra Microsoft Visual Basic for Applications.
2. Clicca su Inserisci > Modulo, incolla il codice VBA nella finestra del Modulo.
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. Clicca sul pulsante Esegui o premi il tasto F5 per eseguire il codice VBA e seleziona una cartella nella finestra di dialogo che appare, vedi screenshot:
4. Clicca su OK e tutti i file XML nella cartella selezionata vengono importati nel foglio attivo.
Importa o combina più file xml/csv in un foglio o in una cartella di lavoro con Kutools per Excel
Se non sei familiare con VBA, non preoccuparti, ti presento uno strumento utile – Kutools per Excel. Con la sua potente funzione Combina, puoi combinare rapidamente più file xml o csv in una cartella di lavoro o in un foglio di Excel.
Dopo aver installato Kutools per Excel, procedi come segue: (Scarica gratuitamente Kutools per Excel ora!)
1. Attiva Excel e clicca su Kutools Plus > Combina. Vedi screenshot:
2. Nella fase 1 di Combina finestra di dialogo, scegli un'opzione di separazione come necessario. Vedi screenshot:
3. Clicca su Avanti per andare alla fase 2 di Combina, clicca su Aggiungi per aggiungere file da varie cartelle o file da una cartella alla lista Cartella di lavoro e puoi anche specificare i fogli che desideri combinare dalla lista Foglio di lavoro nella sezione a destra. Vedi screenshot:
4. Clicca su Avanti per arrivare all'ultimo passaggio di Combina, e puoi specificare le opzioni di combinazione.
5. Clicca su Fine, apparirà una finestra di dialogo per ricordarti di selezionare una posizione in cui salvare il nuovo risultato combinato. Vedi screenshot:
6. Clicca su Salva. Tutti i fogli aggiunti sono stati combinati in un nuovo foglio singolo.
Consiglio: Con Combina, puoi anche combinare più file CSV da più cartelle o da una singola cartella in un foglio o in una cartella di lavoro.
Esporta ogni foglio come csv/testo/pdf in una cartella con Kutools per Excel
Se vuoi esportare ogni foglio come file csv/testo/pdf in una cartella, l'utilità Dividi Cartella di Lavoro di Kutools per Excel può aiutarti.
Dopo aver scaricato e installato gratuitamente Kutools per Excel, procedi come segue:
1. Abilita la cartella di lavoro che desideri esportare e clicca su Kutools Plus > Cartella di Lavoro > Dividi Cartella di Lavoro. Vedi screenshot:
2. Nella finestra di dialogo Dividi Cartella di Lavoro, puoi selezionare i nomi dei fogli che desideri esportare; per impostazione predefinita, tutti i fogli sono selezionati. Spunta Specifica formato di salvataggio e seleziona il formato di file che desideri salvare dal menu a discesa sottostante. Vedi screenshot:
3. Clicca su Dividi e seleziona una cartella in cui salvare i file divisi nella finestra di dialogo Sfoglia Cartella, vedi screenshot:
4. Clicca su OK, ora tutti i fogli selezionati sono esportati come nuovi file nel formato selezionato nella cartella scelta.
Articoli correlati:
- Come convertire un collegamento ipertestuale in testo semplice in Excel?
- Come convertire un numero decimale in binario/ottale/esadecimale o viceversa in Excel?
- Come inserire il tasso di cambio in tempo reale in Excel?
I migliori strumenti per la produttività in Office
Migliora le tue competenze su Excel con Kutools per Excel e sperimenta un nuovo livello di efficienza. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...
Office Tab porta l’interfaccia a schede su Office, rendendo il tuo lavoro molto più semplice
- Abilita la modifica a schede e la lettura in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede della stessa finestra, invece che in nuove finestre.
- Aumenta la tua produttività del50% e ti fa risparmiare centinaia di clic ogni giorno!