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

¿Cómo importar rápidamente por lotes múltiples archivos csv / text / xml en Excel?

En Excel, es posible que se haya vinculado para guardar un libro de trabajo como archivo csv, archivo de texto o archivo xml, pero ¿alguna vez ha intentado importar varios archivos csv / text / xml de una carpeta a un libro de trabajo o una hoja de trabajo? En este artículo, presento algunos métodos para importarlos por lotes rápidamente.

Importe varios archivos de texto de una carpeta a cada hoja de trabajo de un libro con VBA

Importe varios archivos csv de una carpeta a una sola hoja con VBA

Importe varios archivos xml de una carpeta en una sola hoja con VBA

Importe o combine varios archivos xml / csv en una hoja o un libro de trabajo con Kutools para Excel buena idea3

Exporte cada hoja como csv / text / pdf a una carpeta con Kutools para Excelbuena idea3


Para importar archivos de texto desde una carpeta a un libro de trabajo, puede usar VBA a continuación para manejarlo rápidamente.

1. Habilite un libro en blanco y presione Alt + F11 llaves para abrir Microsoft Visual Basic para aplicaciones ventana.

2. Hacer clic en recuadro > Móduloy pegue el VBA en el Módulo ventana.

VBA: importe todos los archivos de texto de una carpeta a un libro de trabajo

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. Prensa F5 o Ejecutar para ejecutar el VBA, y seleccione una carpeta desde la que desea importar los archivos de texto en el cuadro de diálogo emergente. Ver captura de pantalla:

doc importar múltiples texto csv xml 1

4. Y haga clic en OK, y cada archivo de texto de la carpeta seleccionada se ha importado a una hoja de trabajo del libro activo. Ver captura de pantalla:

doc importar múltiples texto csv xml 2doc importar múltiples texto csv xml 3

Combine fácilmente varias hojas / libro de trabajo en una sola hoja o libro de trabajo

Combinar varias hojas o libros de trabajo en una sola hoja o libro de trabajo puede ser complicado en Excel, pero con la Combinar función en Kutools para Excel, puede combinar fusionar docenas de hojas / libros de trabajo en una hoja o libro de trabajo, también, puede consolidar las hojas en una por varios clics solamente.  Haga clic para ver todas las funciones 30 días de prueba gratis!
combinar sábanas
 
Kutools for Excel: con más de 300 prácticos complementos de Excel, gratis para probar sin limitación en 30 día.

Para importar todos los archivos csv de una carpeta en una sola hoja, puede usar el siguiente código VBA.

1. Active una hoja de trabajo en blanco y presione Alt + F11 llaves para abrir Microsoft Visual Basic para aplicaciones ventana.

2. Hacer clic en recuadro > Móduloy pegue debajo de VBA en el nuevo Módulo ventana.

VBA: importe archivos csv de una carpeta a una hoja de trabajo

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. Prensa F5 tecla o clic Ejecutar para ejecutar el VBA, y aparece un cuadro de diálogo para seleccionar una carpeta desde la que desea importar todos los archivos csv. Ver captura de pantalla:

doc importar múltiples texto csv xml 4

4. Hacer clic en OK, y aparece un cuadro de diálogo para recordarle que si borra el contenido de la hoja de trabajo activa antes de importar, aquí hago clic. Ver captura de pantalla:

doc importar múltiples texto csv xml 5

Después de hacer clic , todos los archivos csv de la carpeta seleccionada se importan a la hoja actual y colocan los datos de la columna A a la derecha. Ver captura de pantalla:

doc importar múltiples texto csv xml 6doc importar múltiples texto csv xml 7

Consejo: Si desea colocar archivos csv horizontalmente en una hoja de trabajo, puede usarlos a continuación 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 importar múltiples texto csv xml 8


Si desea importar todos los archivos XML de una carpeta en una sola hoja, puede usar el siguiente código VBA.

1. Seleccione una hoja en blanco en la que desee colocar los datos importados y presione Alt + F11 claves para habilitar Microsoft Visual Basic para aplicaciones ventana.

2. Hacer clic en recuadro > Módulo, pegue el código VBA en el Módulo ventana.

VBA: importe archivos XML de una carpeta a una hoja de trabajo.

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. Hacer clic en Ejecutar botón o F5 clave para ejecutar el VBA, y seleccione una carpeta en el cuadro de diálogo emergente, vea la captura de pantalla:

doc importar múltiples texto csv xml 9

4. Hacer clic en OKy todos los archivos XML de la carpeta seleccionada se importan a la hoja activa.


Si no está familiarizado con VBA, preocúpese, aquí les presento una herramienta útil: Kutools for Excel para ti. Con su poderoso Combinar utilidad, puede combinar rápidamente varios archivos xml o archivos csv en un libro de trabajo o una hoja de Excel.

Kutools for Excel, con más de 300 funciones prácticas, facilita su trabajo. 

Después de instalar Kutools para Excel, haga lo siguiente:(¡Descarga gratis Kutools para Excel ahora!)

1. Active Excel y haga clic en Kutools Más > Combinar. Ver captura de pantalla:
doc combinar 1

2. Y en el paso 1 de Combinar diálogo, elija una opción de separación que necesite. Ver captura de pantalla:
doc combinar 2

3. Hacer clic en Siguiente ir a paso 2 de la combinación, haga clic Añada para agregar archivos de varias carpetas o archivos de una carpeta a Libro de trabajo lista, y también puede especificar las hojas de las que desea combinar Hoja de trabajo lista de la sección derecha. Ver captura de pantalla:
doc kutools combinar hojas 3

4. Hacer clic en Siguiente al último paso de Combinary puede especificar las opciones de combinación.
doc kutools combinar hojas 4

5. Hacer clic en Terminar, aparece un cuadro de diálogo para recordarle que seleccione una ubicación para guardar el nuevo resultado combinado. Ver captura de pantalla:
doc combinar 5

6. Hacer clic en a Salvar. Todas las hojas adicionales se han combinado en una nueva hoja única.
doc combinar 6

Consejo: Con Combinar, también puede combinar varios Archivos CSV Forme varias carpetas o una carpeta en una hoja o libro de trabajo.


Si desea exportar cada hoja como archivo csv / text / pdf a una carpeta, Kutools for Excel, Libro de trabajo dividido La utilidad puede hacerte un favor.

Después instalación gratuita Kutools para Excel, haga lo siguiente:

1. Habilite el libro de trabajo cuyas hojas de trabajo desea exportar y haga clic en Kutools Más > Libro de trabajo > Libro de trabajo dividido. Ver captura de pantalla:

doc importar múltiples texto csv xml 10

2. En el Libro de trabajo dividido cuadro de diálogo, puede comprobar los nombres de las hojas que necesita exportar, de forma predeterminada, todas las hojas están marcadas y Especificar formato de guardado y seleccione el formato de archivo que desea guardar en la lista desplegable a continuación. Ver captura de pantalla:

doc importar múltiples texto csv xml 11

3. Hacer clic en Mini Split y seleccione una carpeta para guardar los archivos divididos en el Busca por carpetas diálogo, ver captura de pantalla:

doc importar múltiples texto csv xml 12

4. Hacer clic en OK, ahora todas las hojas marcadas se exportan como un nuevo formato de archivo en la carpeta seleccionada.


Artículos relativos:


Las mejores herramientas de productividad de oficina

Kutools para Excel resuelve la mayoría de sus problemas y aumenta su productividad en un 80%

  • Reutilizar: Inserte rápidamente fórmulas complejas, gráficos y cualquier cosa que hayas usado antes; Cifrar celdas con contraseña; Crear lista de distribución y enviar correos electrónicos ...
  • Barra de súper fórmula (edite fácilmente varias líneas de texto y fórmulas); Diseño de lectura (leer y editar fácilmente un gran número de celdas); Pegar en rango filtrado...
  • Combinar celdas / filas / columnas sin perder datos; Contenido de celdas divididas; Combinar filas / columnas duplicadas... Prevenir celdas duplicadas; Comparar rangos...
  • Seleccione Duplicado o Único Filas; Seleccionar filas en blanco (todas las celdas están vacías); Super Find y Fuzzy Find en muchos libros de trabajo; Selección aleatoria ...
  • Copia exacta Varias celdas sin cambiar la referencia de la fórmula; Crear referencias automáticamente a varias hojas; Insertar viñetas, Casillas de verificación y más ...
  • Extraer texto, Agregar texto, Eliminar por posición, Quitar espacio; Crear e imprimir subtotales de paginación; Convertir entre contenido de celdas y comentarios...
  • Súper filtro (guardar y aplicar esquemas de filtros a otras hojas); Orden avanzado por mes / semana / día, frecuencia y más; Filtro especial en negrita, cursiva ...
  • Combinar libros y hojas de trabajo; Combinar tablas basadas en columnas clave; Dividir datos en varias hojas; Conversión por lotes de xls, xlsx y PDF...
  • Más de 300 potentes funciones. Compatible con Office/Excel 2007-2021 y 365. Compatible con todos los idiomas. Fácil implementación en su empresa u organización. Funciones completas Prueba gratuita de 30 días. Garantía de devolución de dinero de 60 días.
pestaña kte 201905

Office Tab lleva la interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil

  • Habilite la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abra y cree varios documentos en nuevas pestañas de la misma ventana, en lugar de en nuevas ventanas.
  • ¡Aumenta su productividad en un 50% y reduce cientos de clics del mouse todos los días!
officetab parte inferior
Comentarios (36)
Aún no hay calificaciones. ¡Sé el primero en calificar!
Este comentario fue minimizado por el moderador en el sitio
¡Hola, muchas gracias por esos ejemplos de código! El primero (VBA: importar todos los archivos de texto de una carpeta a un libro de trabajo) es casi exactamente lo que necesito. Sin embargo, me gustaría seleccionar qué archivos importar y no importar automáticamente todos los archivos de texto en una carpeta determinada. También me gustaría que el contenido de los archivos de texto sobrescribiera el contenido existente de mis hojas de destino. (Con el código anterior, el contenido existente se desplaza hacia la derecha en lugar de reemplazarse). ¿Cómo hago eso? ¡Gracias por adelantado!
Este comentario fue minimizado por el moderador en el sitio
Hola, me gustaría saber sobre el código de VBA para "Importar varios archivos Xml de una carpeta a una sola hoja con VBA". 1. ¿Por qué se necesitan 2 libros de trabajo en lugar de 1? 2. Se está tardando un poco en cargar muchos archivos xml en Excel, entonces, ¿hay un código más eficiente? Porque me doy cuenta de que cuando se ejecutó su código, se crearon muchos libros de trabajo de VBA que causaron la desaceleración. ¡Te agradecería mucho que me ayudaras a entender!
Este comentario fue minimizado por el moderador en el sitio
Lo siento, no entendí tu primera pregunta, y sobre la segunda, el código más eficiente, no lo he encontrado, si lo sabes, déjame una nota, gracias.
Este comentario fue minimizado por el moderador en el sitio
Hola, me gustaría saber sobre el código VBA para "Importar varios archivos .txt de una carpeta a una sola hoja con VBA" en la siguiente fila disponible (no horizontal). Por favor ayuda, urgente
Este comentario fue minimizado por el moderador en el sitio
Hola, si desea importar todos los archivos txt de una carpeta a una sola hoja, puede usar el código vba anterior para importar archivos txt a un libro de trabajo primero, luego aplique la función Combinar hojas de trabajo de Kutools for Excel para combinar todas las hojas de un libro de trabajo para una hoja, luego los archivos txt en una hoja. Espero que te ayude.
Este comentario fue minimizado por el moderador en el sitio
El problema con esto es que ni el comando VBA ni Kutools permiten importar los archivos csv con formato de código de caracteres. La precarga es occidental. Necesito importar todos los archivos csv como unicode-8
Este comentario fue minimizado por el moderador en el sitio
el código para convertir desde archivos txt no funcionó para mí.
Este comentario fue minimizado por el moderador en el sitio
Lo sentimos, este artículo no funciona para usted. ¿Podrías describir tu problema? ¿Qué sucede mientras se ejecuta el código? ¿Y con qué sistema trabajas?
Este comentario fue minimizado por el moderador en el sitio
¡Hola! ¡El código "Importar archivos csv de una carpeta a una hoja de trabajo" funciona para mí! Pero este código no funciona para un archivo .txt vacío. ¿Hay alguna forma de mantener también los archivos vacíos?
Este comentario fue minimizado por el moderador en el sitio
Lo siento, no sé por qué es necesario importar un txt.file vacío ~ Simplemente inserte filas en blanco para separar los contenidos.
Este comentario fue minimizado por el moderador en el sitio
Mike: "el código para convertir archivos txt no me funcionó".

Tuve el mismo problema. La macro falla si tiene más archivos txt para abrir que hojas de trabajo en su libro de trabajo (el valor predeterminado es 3).
Lo arreglé agregando lo siguiente justo antes de que finalice el ciclo para que la macro cree una nueva hoja después del resto
ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
Este comentario fue minimizado por el moderador en el sitio
Chad, esto funcionó perfectamente para mí para importar múltiples archivos de texto. Gracias.

¿Sabes si hay alguna manera de extraer los nombres de los archivos? Quiero que los nombres de los archivos de texto se copien en las pestañas de cada hoja de Excel.
Este comentario fue minimizado por el moderador en el sitio
¡Totalmente impresionante! Intenté abrir todos los archivos csv en una hoja de trabajo y funcionó maravillosamente. ¡Muchas gracias, de verdad!
Este comentario fue minimizado por el moderador en el sitio
Hola, intenté ejecutar el código para .xml y no pareció funcionar porque recibí el mensaje "no hay archivos xml". ¿Cómo soluciono esto?
Este comentario fue minimizado por el moderador en el sitio
Aparecerá un mensaje "no hay archivos xml" mientras la carpeta seleccionada no contenga los archivos xml. Puede seleccionar la carpeta correcta que contiene archivos xml en el cuadro de diálogo emergente después de ejecutar el código para importarlos a la hoja activa.
Este comentario fue minimizado por el moderador en el sitio
¡Funcionó! Gracias
Este comentario fue minimizado por el moderador en el sitio
hola, saya mau tanya kalo impor txt file ke satu sheet gimana ya?
Este comentario fue minimizado por el moderador en el sitio
Hola Rendy, ¿quieres importar todos los txts a una hoja o cada txt a cada hoja?
Este comentario fue minimizado por el moderador en el sitio
Tengo un código para importar txts a las hojas, cada txt a cada hoja, pero quiero que cada txt se importe con su nombre a la hoja, me refiero a cambiar el nombre de cada hoja importada con el nombre del txt del archivo de código adjunto... Quiero editar esto archivo para agregar código para cambiar el nombre de las hojas con el nombre de txts ... gracias.
Este comentario fue minimizado por el moderador en el sitio
Tengo un código para importar txts a hojas, cada txt a cada hoja, pero quiero que cada txt se importe con su nombre a la hoja, me refiero a cambiar el nombre de cada hoja importada con el nombre del txt el archivo de código adjunto... gracias
Este comentario fue minimizado por el moderador en el sitio
Hola, Ramy, zahran, puede probar el siguiente código que puede importar los archivos de texto y cambiar el nombre de la hoja al nombre del archivo de texto.
Sub LoadPipeDelimitedFiles()
'Actualizar porExtendoffice20180925
Dim xStrPath como cadena
Atenuar xFileDialog como FileDialog
Dim xFile como cadena
Atenuar xCuenta siempre
Dim xWS como hoja de trabajo

En caso de error Ir a ErrHandler
Establecer xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = Falso
xFileDialog.title = "Seleccione una carpeta [Kutools para Excel]"
Si xFileDialog.Show = -1 Entonces
xStrPath = xFileDialog.SelectedItems(1)
Si terminar
Si xStrPath = "" Entonces Salir de Sub
Application.ScreenUpdating = False
xFile = Dir(xStrPath & "\*.txt")
Hacer mientras xFile <> ""
xCuenta = xCuenta + 1
Establecer xWS = Hojas (xCount)
xWS.Seleccionar
xWS.Name = "TEXTO" & Left(xFile, Len(xFile) - 4)
Con ActiveSheet.QueryTables.Add(Conexión:="TEXT;" _
& xStrPath & "\" & xFile, Destino:=Rango("A1"))
.Nombre = "a" & xCuenta
.Nombres de campo = Verdadero
.RowNumbers = Falso
.FillAdjacentFormulas = Falso
.PreserveFormatting = Verdadero
.RefreshOnFileOpen = Falso
.RefreshStyle = xlInsertDeleteCells
.SavePassword = Falso
.SaveData = Verdadero
.AdjustColumnWidth = Verdadero
.RefreshPeriod = 0
.TextFilePromptOnRefresh = Falso
.Plataforma de archivos de texto = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = Falso
.TextFileTabDelimiter = Falso
.TextFileSemicolonDelimiter = Falso
.TextFileCommaDelimiter = Falso
.TextFileSpaceDelimiter = Falso
.TextFileOtherDelimiter = "|"
.TextFileColumnDataTypes = Matriz (1, 1, 1)
.TextFileTrailingMinusNumbers = Verdadero
.Refresh BackgroundQuery: = False
xArchivo = Dir
End With
Red ISTE Loop
Application.ScreenUpdating = True
Exit Sub
Manejador de errores:
MsgBox "sin archivos txt", , "Kutools para Excel"
End Sub
Este comentario fue minimizado por el moderador en el sitio
¡Hola! Usé el código para fusionar varios archivos XML en uno, pero desafortunadamente las columnas se estropearon. Los 5 archivos que se fusionaron tenían el mismo formato. ¿Hay alguna forma de arreglar esto? También me preguntaba si había alguna manera de deshacerse de los encabezados que se duplican cuando se fusionan los archivos. ¡Gracias!
Este comentario fue minimizado por el moderador en el sitio
Gracias. Este sitio ha sido de gran ayuda. Tengo un problema que no puedo resolver. Estoy tratando de importar varios archivos csv en hojas separadas de Excel en Excel y cambiar el nombre de cada hoja después del nombre del archivo csv. Sé que esto se cubrió a continuación para un archivo txt, pero estoy trabajando con archivos csv. Gracias por adelantado.
Este comentario fue minimizado por el moderador en el sitio
Hola, estoy usando la importación de todos los archivos csv en un archivo que se enumera arriba "Importar varios archivos csv de una carpeta a una sola hoja con VBA". Me gustaría definir la carpeta de la que recopila los datos sin tener que elegir manualmente eso. Se puede hacer esto? gracias - SW.
Este comentario fue minimizado por el moderador en el sitio
Hola, Scott W, encontré un código VBA que puede ayudarte.
Opción explícita

SubimportaciónCSVsWithReference()
'Autor: Jerry Beaucaire
'Fecha: 10/16/2010
'Resumen: Importe todos los archivos CSV de una carpeta en una sola hoja
' agregar un campo en la columna A que enumera los nombres de archivo CSV

Dim wbCSV como libro de trabajo
Dim wsMstr como hoja de trabajo: Establecer wsMstr = ThisWorkbook.Sheets("Sheet1")
Dim fPath As String: fPath = " C:\Users\DT168\Desktop\New folder\" 'ruta a los archivos CSV, incluye la \ final
Dim fCSV como cadena

If MsgBox("¿Borrar la hoja existente antes de importar?", vbSíNo, "¿Borrar?") _
= vbSí Entonces wsMstr.UsedRange.Clear

Application.ScreenUpdating = Falso 'acelerar macro

fCSV = Dir(fPath & "*.csv") 'iniciar la lista de archivos CSV

Hacer mientras Len(fCSV) > 0
'abrir un archivo CSV
Establecer wbCSV = Libros de trabajo. Abrir (fPath y fCSV)
'insertar col A y agregar nombre CSV
Columnas (1). Insertar xlShiftToRight
Columnas (1). SpecialCells (xlBlanks). Valor = ActiveSheet.Name
'copie la fecha en la hoja maestra y cierre el archivo fuente
ActiveSheet.UsedRange.Copy wsMstr.Range("A" & Rows.Count).End(xlUp).Offset(1)
wbCSV.Cerrar Falso
'listo siguiente CSV
fCSV = Dirección
Red ISTE Loop

Application.ScreenUpdating = True
End Sub
Este comentario fue minimizado por el moderador en el sitio
Cómo eliminar el encabezado duplicado y la columna del nombre del archivo CSV. Por favor, ayuda... He revisado varios artículos, pero desafortunadamente todos dan el mismo resultado.
Este comentario fue minimizado por el moderador en el sitio
Hola: he usado sus códigos VBA para extraer datos de varios archivos CSV a un archivo de Excel (el código en esta página) y convertir archivos csv a archivos de Excel (este: https://www.extendoffice.com/documents/excel/4615-excel-batch-convert-csv-to-xls-xlsx.html), con excelentes resultados. Me ayudaron a ahorrar mucho tiempo.

Sin embargo, noto un problema común con ambos tipos de códigos. Para aclarar, mi sistema está configurado para usar los estándares europeos para las fechas, mientras que algunos de los archivos CSV que recibí para mi trabajo contienen fechas en los estándares estadounidenses. El primer problema es que, cuando extraigo o convierto datos de un archivo CSV que contiene fechas en formato estadounidense, todas esas fechas se invierten (coincidiendo con los estándares de la UE utilizados por mi sistema). Esto es genial, pero también me causó problemas ya que no sabía que los códigos revertirían las fechas para mí, así que seguí adelante e hice lo mismo nuevamente. El segundo problema es que, para los archivos CSV que contienen fechas que ya están en el mismo formato que el utilizado por mi sistema (estándares de la UE), solo se invierten las fechas ambiguas (es decir, 04/05/2019 - 05/04/2019), mientras que los que son demasiado obvios, permanecen sin cambios (es decir, 30/04/2019).

Lo que me gustaría que hicieran los códigos es exactamente lo mismo que se muestra aquí, solo que deben copiar y pegar los datos (especialmente las fechas) en los formatos exactos utilizados en los archivos originales. Esto ayudaría a prevenir posibles confusiones y errores. Me gustaría aprender VBA para poder algún día escribir mis propios códigos, pero por ahora ni siquiera puedo modificar partes de los códigos existentes para satisfacer mis necesidades. Entonces, si puede ayudar, dígame dónde debo colocar los códigos modificados (que se le ocurran) a los códigos existentes. Agradezco todos los comentarios y el apoyo que pueda obtener. ¡Gracias a todos!
Este comentario fue minimizado por el moderador en el sitio
Hola Marshall, en el método Workbooks.Open, agregue la opción Local:=True.

es decir,
Establecer xWb = Workbooks.Open(xStrPath & "\" & xFile, Local:=True)
Este comentario fue minimizado por el moderador en el sitio
Muchas gracias Roberto. Siento no haber podido responderte antes. No he recibido ninguna notificación hasta ahora. Probaré esto y volveré a usted más tarde para informarle si esto funciona.
Este comentario fue minimizado por el moderador en el sitio
Hola Robert
Soy yo otravez. Me tomó un tiempo tener tiempo para averiguar a qué parte del código se debe agregar la parte "Local: True". El resultado resultó excelente ya que las fechas ya no se invierten. ¡Gracias!
Para cualquiera que tenga el mismo problema, simplemente cambie esta línea:
Establecer xWb = Workbooks.OpenXML(xStrPath & "\" & xFile)

A esto:
Establecer xWb = Workbooks.Open(xStrPath & "\" & xFile, Local:=True)
Este comentario fue minimizado por el moderador en el sitio
Hola, ¿hay alguna forma de importar varios archivos csv con punto y coma como separador? ¡Gracias!
PD ¡Buen artículo!
Este comentario fue minimizado por el moderador en el sitio
Hola equipo

Estoy usando el código para importar múltiples archivos XML en una sola hoja con VBA, sin embargo, el problema al que me enfrento es cuando el recuento de filas alcanza aproximadamente 650000, entonces no procesa el resto de los archivos xml en la carpeta y da un error que indica que no hay archivos xml. . Necesito su apoyo para aumentar este conteo.
Este comentario fue minimizado por el moderador en el sitio
Hola expertos

Estoy usando el código anterior para importar múltiples archivos xml en 1 hoja de trabajo usando VBA, sin embargo, el problema al que me enfrento es cuando el recuento de filas llega a 650000 en una hoja de trabajo, entonces este código no procesa el resto de los archivos xml en la carpeta. Da un error "sin archivos.xml". Requiere su amable apoyo
Este comentario fue minimizado por el moderador en el sitio
Hola. Las instrucciones para importar varios xml en una pestaña de un documento de Excel funcionan, pero me preguntaba cómo lograr que se alineen las columnas. Mis xml no tienen todas las mismas etiquetas. Están configurados de tal manera que si el xml no tiene datos para algunos encabezados (etiquetas), falta el encabezado de ese xml. ¿Hay alguna manera de importar los xml para que los mismos encabezados de cada xml y los datos asociados caigan en la misma columna de Excel?
No hay comentarios publicados aquí todavía
Ver más
Deje sus comentarios
Publicar como invitado
×
Califica esta publicación:
0   Personajes
Ubicaciones sugeridas

Siganos

Copyright © 2009 - www.extendoffice.com. | Reservados todos los derechos. Energizado por ExtendOffice, | Mapa del Sitio
Microsoft y el logotipo de Office son marcas comerciales o marcas comerciales registradas de Microsoft Corporation en los Estados Unidos y / o en otros países.
Protegido por Sectigo SSL