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

¿Cómo ejecutar una macro al mismo tiempo en varios archivos de libros de trabajo?

En este artículo, hablaré sobre cómo ejecutar una macro en varios archivos de libros de trabajo al mismo tiempo sin abrirlos. El siguiente método puede ayudarlo a resolver esta tarea en Excel.

Ejecute una macro al mismo en varios libros de trabajo con código VBA


Ejecute una macro al mismo en varios libros de trabajo con código VBA

Para ejecutar una macro en varios libros de trabajo sin abrirlos, aplique el siguiente código VBA:

1. Mantenga pulsado el ALT + F11 teclas para abrir el Microsoft Visual Basic para aplicaciones ventana.

2. Hacer clic recuadro > Móduloy pegue la siguiente macro en el Módulo Ventana.

Código de VBA: ejecute la misma macro en varios libros de trabajo al mismo tiempo:

Sub LoopThroughFiles()
    Dim xFd As FileDialog
    Dim xFdItem As Variant
    Dim xFileName As String
    Set xFd = Application.FileDialog(msoFileDialogFolderPicker)
    If xFd.Show = -1 Then
        xFdItem = xFd.SelectedItems(1) & Application.PathSeparator
        xFileName = Dir(xFdItem & "*.xls*")
        Do While xFileName <> ""
            With Workbooks.Open(xFdItem & xFileName)
                'your code here
            End With
            xFileName = Dir
        Loop
    End If
End Sub

Nota:: En el código anterior, copie y pegue su propio código sin el Sub partida y End Sub pie de página entre el Con Workbooks.Open (xFdItem y xFileName) y End With guiones. Ver captura de pantalla:

doc ejecutar macro varios archivos 1

3. Entonces presione F5 clave para ejecutar este código, y una Búsqueda de se muestra la ventana, seleccione una carpeta que contenga los libros de trabajo que desea aplicar esta macro, vea la captura de pantalla:

doc ejecutar macro varios archivos 2

4. Y luego haz clic OK , la macro deseada se ejecutará de una vez de un libro a otros.

 


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 (43)
4.5 clasificado de 5 · 1 calificaciones
Este comentario fue minimizado por el moderador en el sitio
Macro muy útil, y funciona bien, pero me gustaría poder seleccionar en qué archivos de esa carpeta quiero que se ejecute la macro. Los archivos no se generan automáticamente en una carpeta separada, y necesito ejecutar diferentes macros en cada conjunto de archivos de esa carpeta y luego volver a moverlos a la carpeta inicial.
Este comentario fue minimizado por el moderador en el sitio
Seguí las instrucciones pero obtuve un error de compilación "Bucle sin hacer". ¿Qué me estoy perdiendo? Mi código de macro es muy simple, simplemente cambie el tamaño de fuente de las filas especificadas. Funciona por sí mismo. Esto es lo que tengo... por favor ayuda

Bucle secundario a través de archivos()
Dim xFd como archivo de diálogo
Dim xFdItem como variante
Dim xFileName como cadena
Establecer xFd = Application.FileDialog(msoFileDialogFolderPicker)
Si xFd.Show = -1 Entonces
xFdItem = xFd.SelectedItems(1) & Application.PathSeparator
xNombreArchivo = Dir(xFdItem & "*.xls*")
Hacer mientras xNombre de archivo <> ""
Con Workbooks.Open (xFdItem y xFileName)
'tu código aquí
Filas("2:8").Seleccionar
Con Selección.Fuente
.Nombre = "Arial"
.Tamaño = 12
.Tachado = Falso
.Superíndice = Falso
.Subíndice = Falso
.OutlineFont = Falso
.Sombra = Falso
.Underline = xlUnderlineStyleNone
.Color = -11518420
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
xNombreArchivo = Dir
Red ISTE Loop
Si terminar
End Sub
Este comentario fue minimizado por el moderador en el sitio
Hola Yarto.
Te perdiste el script "Terminar con" al final de tu código, el correcto debería ser este:
Bucle secundario a través de archivos()
Dim xFd como archivo de diálogo
Dim xFdItem como variante
Dim xFileName como cadena
Establecer xFd = Application.FileDialog(msoFileDialogFolderPicker)
Si xFd.Show = -1 Entonces
xFdItem = xFd.SelectedItems(1) & Application.PathSeparator
xNombreArchivo = Dir(xFdItem & "*.xls*")
Hacer mientras xNombre de archivo <> ""
Con Workbooks.Open (xFdItem y xFileName)
'tu código aquí
Filas("2:8").Seleccionar
Con Selección.Fuente
.Nombre = "Arial"
.Tamaño = 16
.Tachado = Falso
.Superíndice = Falso
.Subíndice = Falso
.OutlineFont = Falso
.Sombra = Falso
.Underline = xlUnderlineStyleNone
.Color = -11518420
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
End With
xNombreArchivo = Dir
Red ISTE Loop
Si terminar
End Sub

¡Pruébalo, espero que te pueda ayudar!
Este comentario fue minimizado por el moderador en el sitio
Macro muy útil, y funciona muy bien, pero me gustaría poder seleccionar en qué archivos de esa carpeta quiero que se ejecute la macro. Por ejemplo, tengo 4 archivos en una carpeta con otros archivos de Excel y solo quiero que se ejecute en esos 4 archivos específicos. ¿Cómo puedo modificar su macro para que me permita elegir esos 4 archivos de esa carpeta?
Este comentario fue minimizado por el moderador en el sitio
Hola Joel,
Para activar el mismo código en libros de trabajo específicos, debe aplicar el siguiente código:

Bucle secundario a través de archivos()
Dim xFd como archivo de diálogo
Dim xFdItem como variante
Dim xFileName como cadena
Dim xFB como cadena
Con Aplicación.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = Verdadero
.Filtros.Borrar
.Filtros.Añadir "excel", "*.xls*"
.Espectáculo
Si .SelectedItems.Count < 1, entonces salga de Sub
Para lngCount = 1 Para .SelectedItems.Count
xFileName = .SelectedItems(lngCount)
Si xNombreArchivo <> "" Entonces
Con Workbooks.Open(Nombre de archivo:=xNombre de archivo)
'tu codigo
End With
Si terminar
Siguiente lngCount
End With
End Sub

¡Pruébalo, espero que te pueda ayudar!
Este comentario fue minimizado por el moderador en el sitio
gracias, fue de mucha ayuda
Este comentario fue minimizado por el moderador en el sitio
¡Hola!

Trato de insertar mi código en el suyo y cuando ejecuto la macro me da el siguiente mensaje: Error de tiempo de ejecución '429': ActiveX no puede crear el objeto. Por favor, aconseje cómo se puede arreglar. ¡Gracias!

Mi código:

Establecer RInput = Rango ("A2: A21")
Establecer ROutput = Rango ("D2: D22")

Dim A() como variante
ReDim A(1 a RInput.Rows.Count, 0)
A = REntrada.Valor2

Establecer d = CreateObject("Scripsting.Dictionary")

Para i = 1 Para UBound(A)
Si d.Existe(A(i, 1)) Entonces
d(A(yo, 1)) = d(A(yo, 1)) + 1
otro
d.Sumar A(i, 1), 1
Si terminar
Siguiente
Para i = 1 Para UBound(A)
A(yo, 1) = d(A(yo, 1))
Siguiente

RSalida = A
Este comentario fue minimizado por el moderador en el sitio
Hola, en primer lugar gracias por esta macro, era exactamente lo que estaba buscando. Sin embargo, tengo un problema: ¿hay alguna manera de cerrar y guardar cada ventana a medida que se completa? Tengo una gran cantidad de archivos y me estoy quedando sin RAM antes de que se complete la ejecución.
Este comentario fue minimizado por el moderador en el sitio
Sí, simplemente agregue a continuación su siguiente código si desea guardar el archivo con el mismo nombre:

'Guardando el libro de trabajo
ActiveWorkbook.Guardar
Este comentario fue minimizado por el moderador en el sitio
Hola, Caitlin,
Tal vez el siguiente código pueda ayudarlo, cada vez que ejecute su código específico, aparecerá un cuadro emergente para guardar el archivo que le recordará que debe guardar el libro de trabajo.

Bucle secundario a través de archivos()
Dim xFd como archivo de diálogo
Dim xFdItem como variante
Dim xFileName como cadena
Dim xWB como libro de trabajo
Establecer xFd = Application.FileDialog(msoFileDialogFolderPicker)
Si xFd.Show = -1 Entonces
xFdItem = xFd.SelectedItems(1) & Application.PathSeparator
xNombreArchivo = Dir(xFdItem & "*.xls*")
On Error Resume Next
Hacer mientras xNombre de archivo <> ""
Establecer xWB = Workbooks.Open(xFdItem & xFileName)
Con xWB
'tu código aquí
End With
xWB.Cerrar
xNombreArchivo = Dir
Red ISTE Loop
Si terminar
End Sub
Este comentario fue minimizado por el moderador en el sitio
¡Hola!

Trato de insertar mi código en el suyo y cuando ejecuto la macro me da el siguiente mensaje: Error de tiempo de ejecución '429': ActiveX no puede crear el objeto. Por favor, aconseje cómo se puede arreglar. ¡Gracias!

Mi código:

Establecer RInput = Rango ("A2: A21")
Establecer ROutput = Rango ("D2: D22")

Dim A() como variante
ReDim A(1 a RInput.Rows.Count, 0)
A = REntrada.Valor2

Establecer d = CreateObject("Scripsting.Dictionary")

Para i = 1 Para UBound(A)
Si d.Existe(A(i, 1)) Entonces
d(A(yo, 1)) = d(A(yo, 1)) + 1
otro
d.Sumar A(i, 1), 1
Si terminar
Siguiente
Para i = 1 Para UBound(A)
A(yo, 1) = d(A(yo, 1))
Siguiente

RSalida = A
Este comentario fue minimizado por el moderador en el sitio
Hola,

He usado esta macro con éxito para formatear archivos de la NBA para los 30 equipos, cada uno con su propio libro. Ayer recibí un mensaje de error que indica que el módulo (macro) no se puede completar, eliminar o editar (para guardar). Ha corrompido mi libro de macros personal y ha hecho que Excel sea prácticamente inutilizable para mí. Bloquea la aplicación cada vez que intento acceder a una macro desde cualquier archivo. El soporte de Excel y el soporte de Windows no han sido capaces de arreglar las cosas. ¿Puede usted ayudar?
Este comentario fue minimizado por el moderador en el sitio
Hola, ¿hay alguna manera de definir el destino del archivo en el script mismo? Quiero omitir el proceso 3 donde tenemos que buscar la carpeta específica.
Este comentario fue minimizado por el moderador en el sitio
Hola, gracias por este código. ¿Puede decirme cómo puedo tener el resultado de mi macro para la que abrí todos los libros de trabajo en una hoja (el resultado de cada libro de trabajo en una fila)? y ¿hay alguna manera de agregar el nombre de cada libro de trabajo a la fila con los datos del paso anterior?
Este comentario fue minimizado por el moderador en el sitio
Hi

Recibí un error de tiempo de ejecución 1004: la sintaxis no es correcta cuando ejecuté el siguiente código, que es Extend Office VBA para "Ejecutar una macro al mismo tiempo en varios libros de trabajo con código VBA" con Extend Office VBA "Eliminar todos los rangos con nombre con código VBA" en la ranura para insertar su código:

Bucle secundario a través de archivos()

Dim xFd como archivo de diálogo

Dim xFdItem como variante

Dim xFileName como cadena

Establecer xFd = Application.FileDialog(msoFileDialogFolderPicker)

Si xFd.Show = -1 Entonces

xFdItem = xFd.SelectedItems(1) & Application.PathSeparator

xNombreArchivo = Dir(xFdItem & "*.xls*")

Hacer mientras xNombre de archivo <> ""

Con Workbooks.Open (xFdItem y xFileName)

' Sub BorrarNombres()

'Actualiza 20140314

Dim xName como nombre

Para cada xName en Application.ActiveWorkbook.Names

xNombre.Eliminar

Siguiente


End With

xNombreArchivo = Dir

Red ISTE Loop

Si terminar

End Sub

Lo que intento hacer es ejecutar una macro que elimine los rangos con nombre en ocho libros de trabajo que se encuentran en la misma carpeta.

Por cierto, esta es la primera vez que uso algo de Extend Office y no funciona. Este sitio web ha sido de gran ayuda para mí.

Sugerencias/comentarios serán muy apreciados.

aldc
Este comentario fue minimizado por el moderador en el sitio
Hola aldc,
Su código funciona bien en mi libro de trabajo, ¿qué versión de Excel usa?
Este comentario fue minimizado por el moderador en el sitio
Hola, este código es muy bueno y útil. ¡Lo uso mucho!

Hoy en día, en mi organización ahora usamos SharePoint para almacenar nuestros archivos. ¿Hay alguna forma de hacer que este código funcione en todos los archivos en una carpeta de Sharepoint?
Este comentario fue minimizado por el moderador en el sitio
Hola, gracias por este código.
¿Hay alguna manera de recorrer las subcarpetas también? Digamos que tengo una carpeta y dentro de la carpeta diez carpetas más, cada una de las cuales contiene un archivo de Excel.

¿Hay alguna manera de simplemente seleccionar la carpeta principal para que el código se ejecute en todas sus subcarpetas?

Gracias por su atención.
Este comentario fue minimizado por el moderador en el sitio
Hola, Darko, para ejecutar un código desde una carpeta con las subcarpetas, aplique el siguiente código: Sub LoopThroughFiles_Subfolders (xStrPath como cadena)
Dim xSFolderName
Dim xNombre de archivo
Dim xArrSFPath() como cadena
Dim xI como entero
Si xStrPath = "" Entonces Salir de Sub
xNombreArchivo = Dir(xStrPath & "*.xls*")
Hacer mientras xNombre de archivo <> ""
Con Workbooks.Open (xStrPath y xFileName)
'tu código aquí
End With
xNombreArchivo = Dir
Red ISTE Loop
xSFolderName = Dir(xStrPath, vbDirectory)
xl = 0
ReDim xArrSFPath(0)
Hacer mientras xSFolderName <> ""
Si xSFolderName <> "." Y xSFolderName <> ".." Entonces
Si (GetAttr(xStrPath & xSFolderName) y vbDirectory) = vbDirectory Entonces
xI = xI + 1
Redim Conservar xArrSFPath(xI)
xArrSFPath(xI - 1) = xStrPath & xSFolderName & "\"
Si terminar
Si terminar
xSFolderName = Dir
Red ISTE Loop
Si UBound(xArrSFPath) > 0 Entonces
Para xI = 0 a UBound(xArrSFPath)
LoopThroughFiles_Subcarpetas (xArrSFPath(xI))
Siguiente xI
Si terminar
End Sub
Bucle secundario a través de archivos()
Dim xFd como archivo de diálogo
Dim xFdItem como variante
Dim xFileName como cadena
Establecer xFd = Application.FileDialog(msoFileDialogFolderPicker)
Si xFd.Show = -1 Entonces
xFdItem = xFd.SelectedItems(1) & Application.PathSeparator
LoopThroughFiles_Subcarpetas (xFdItem)
Si terminar
End SubPor favor intente, ¡espero que pueda ayudarlo!
Este comentario fue minimizado por el moderador en el sitio
Además del código anterior, ¿es posible abrir archivos de Excel en el orden cronológico que yo quería?
Este comentario fue minimizado por el moderador en el sitio
Hola primero, muchas gracias por la macro, es muy útil para trabajar. Me preguntaba si tenemos una forma de actualizar la carpeta en onedrive a través de macro. En caso afirmativo, ¿podría decirme qué puedo hacer aquí para actualizar los archivos en onedrive usando macro script?
Este comentario fue minimizado por el moderador en el sitio
Hola, muchas gracias por este script, me funciona muy bien, pero tengo necesidades especiales: ¿Hay alguna forma de cambiar el script para aplicar mi código con condiciones de nombre de archivo Y en subcarpetas?
Me explico: soy docente y creé una solución de excel para guardar los resultados de los alumnos y permitir que los docentes puedan consultarlos. Para ello, tengo un archivo por asignatura escolar y uno por responsable de clase, todo en una carpeta por clase.
Entonces, cuando encuentro un error o una optimización, debo informar los cambios en todos los archivos en todas las subcarpetas.
Pero como todos los archivos no son iguales (organización de diferentes materias), me gustaría una forma de aplicar mi código por ejemplo a todos los archivos llamados "clase de matemáticas" en todas las subcarpetas, o por el contrario, aplicar mi código a todos los archivos en subcarpetas excepto todos los archivos llamados "xyz". ¡Gracias! Fabrice
Este comentario fue minimizado por el moderador en el sitio
Su código dado no funciona con el siguiente VBA, ¿puede ayudarnos a Sub Bundles ()?

Dim vWS como hoja de trabajo
atenuar vA, vA2()
Dim vR Mientras, vSum Hasta, vC Hasta
Dim vN tan largo, vN2 tan largo, vN3 tan largo

Establecer vWS = hoja activa
con vWS
vR = .Celdas(Filas.Recuento, 4).End(xlUp).Row
vSum = Aplicación.Suma(.Rango("D2:D" & vR))
Redim Preserve vA2 (1 a vSum, 1 a 4)
vA = .Rango("A2:D" & vR)
Para vN = 1 Para vR - 1
Para vN2 = 1 Para vA(vN, 4)
vC = vC + 1
Para vN3 = 1 a 4
vA2(vC, vN3) = vA(vN, vN3)
Siguiente vN3
Siguiente vN2
Siguiente vN
End With
vC = 1
Para vN = 1 Hasta vSuma - 2
vA2(vN, 4) = vC
Si vA2(vN + 1, 2) = vA2(vN, 2) Entonces
vC = vC + 1
vA2(vN + 1, 4) = vC
otro
vA2(vN + 1, 4) = 1
vC = 1
Si terminar
Siguiente vN
Application.ScreenUpdating = False
Hojas.Agregar
Con ActiveSheet
vWS.Rango("A1:D1").Copiar .Rango("A1:D1")
.Celdas(2, 1).Redimensionar(vSuma, 4) = vA2
End With
Application.ScreenUpdating = True

End Sub
Este comentario fue minimizado por el moderador en el sitio
Quiero ejecutar este VBA en varias hojas en una carpeta a la vez, ¿pueden ayudarme? Sub Bundles ()

Dim vWS como hoja de trabajo
atenuar vA, vA2()
Dim vR Mientras, vSum Hasta, vC Hasta
Dim vN tan largo, vN2 tan largo, vN3 tan largo

Establecer vWS = hoja activa
con vWS
vR = .Celdas(Filas.Recuento, 4).End(xlUp).Row
vSum = Aplicación.Suma(.Rango("D2:D" & vR))
Redim Preserve vA2 (1 a vSum, 1 a 4)
vA = .Rango("A2:D" & vR)
Para vN = 1 Para vR - 1
Para vN2 = 1 Para vA(vN, 4)
vC = vC + 1
Para vN3 = 1 a 4
vA2(vC, vN3) = vA(vN, vN3)
Siguiente vN3
Siguiente vN2
Siguiente vN
End With
vC = 1
Para vN = 1 Hasta vSuma - 2
vA2(vN, 4) = vC
Si vA2(vN + 1, 2) = vA2(vN, 2) Entonces
vC = vC + 1
vA2(vN + 1, 4) = vC
otro
vA2(vN + 1, 4) = 1
vC = 1
Si terminar
Siguiente vN
Application.ScreenUpdating = False
Hojas.Agregar
Con ActiveSheet
vWS.Rango("A1:D1").Copiar .Rango("A1:D1")
.Celdas(2, 1).Redimensionar(vSuma, 4) = vA2
End With
Application.ScreenUpdating = True

End Sub
Este comentario fue minimizado por el moderador en el sitio
Intenté ejecutar el código pero aparece el error "424: Objeto requerido" en la línea "Con Workbooks.Open(xFdItem & xFileName)". Al mirar más a fondo, parece que los libros de trabajo de Excel almacenados en la carpeta de interés no se muestran/existen (cuando se abre la ventana con la pantalla de código, si trato de abrir la carpeta y no seleccionarla, está vacía). ¿Cómo es eso?
Bucle secundario a través de archivos()
Dim xFd como archivo de diálogo
Dim xFdItem como variante
Dim xFileName como cadena
Establecer xFd = Application.FileDialog(msoFileDialogFolderPicker)
Si xFd.Show = -1 Entonces
xFdItem = xFd.SelectedItems(1) & Application.PathSeparator
xNombreArchivo = Dir(xFdItem & "*.xls*")
Hacer mientras xNombre de archivo <> ""
Con Workbooks.Open (xFdItem y xFileName)
Sheets.Add After:=ActiveSheet
Hojas ("Hoja2"). Seleccione
Hojas("Hoja2").Nombre = "Maestro"
Hojas("Maestro").Seleccionar
Hojas ("Maestro"). Mover antes: = Hojas (1)
End With
xNombreArchivo = Dir
Red ISTE Loop
Si terminar
End Sub


¿Puede ayudarme a resolver este problema?
Este comentario fue minimizado por el moderador en el sitio
Este es mi sitio web favorito con las instrucciones más claras (más que cualquier video de YouTube) y sigo volviendo a él una y otra vez. Muchas gracias por estos tutoriales: eres el salvavidas de un triste estudiante de posgrado.
Este comentario fue minimizado por el moderador en el sitio
Bucle secundario a través de archivos()
Dim xFd como archivo de diálogo
Dim xFdItem como variante
Dim xFileName como cadena
Establecer xFd = Application.FileDialog(msoFileDialogFolderPicker)
Si xFd.Show = -1 Entonces
xFdItem = xFd.SelectedItems(1) & Application.PathSeparator
xNombreArchivo = Dir(xFdItem & "*.xls*")
Hacer mientras xNombre de archivo <> ""
Con Workbooks.Open (xFdItem y xFileName)
' ActiveCell.Offset(0, 1).Columns("A:A").EntireColumn.Select
Selection.Insert Shift:=xlToRight
ActiveCell.Select
End With
xNombreArchivo = Dir
Red ISTE Loop
Si terminar
End Sub, por favor ayuda. Por cierto, la extensión de mis archivos de Excel es (.csv - "delimitado por comas"). y tengo 500 archivos de Excel en una carpeta con un promedio de cada fila de aproximadamente 500000 filas. Por favor, ayuda. Solo quiero insertar una columna en cada libro de trabajo
Este comentario fue minimizado por el moderador en el sitio
alguna vez obtuviste una respuesta a tu pregunta? Estoy tratando de hacer lo mismo con más de 3700 archivos csv. Solo necesito agregar 1 columna (A).
Este comentario fue minimizado por el moderador en el sitio
Hola, necesitados y Carly, para resolver su problema, para ejecutar el código para varios archivos CSV, solo necesita cambiar la extensión del archivo .xls a .csv como se muestra a continuación: Bucle secundario a través de archivos()
Dim xFd como archivo de diálogo
Dim xFdItem como variante
Dim xFileName como cadena
Establecer xFd = Application.FileDialog(msoFileDialogFolderPicker)
Si xFd.Show = -1 Entonces
xFdItem = xFd.SelectedItems(1) & Application.PathSeparator
xNombreArchivo = Dir(xFdItem & "*.csv*")
Hacer mientras xNombre de archivo <> ""
Con Workbooks.Open (xFdItem y xFileName)
ActiveCell.Offset(0, 1).Columnas("A:A").EntireColumn.Select
Selection.Insert Shift:=xlToRight
ActiveCell.Select
End With
xNombreArchivo = Dir
Red ISTE Loop
Si terminar
End SubPor favor intente, ¡espero que pueda ayudarlo!
Este comentario fue minimizado por el moderador en el sitio
Hola, ¿es posible ejecutar la macro solo en las hojas de diferentes libros con un nombre específico? ¡¡Gracias!!
Este comentario fue minimizado por el moderador en el sitio
Hola sara,
Lo sentimos, no hay una buena solución para el problema que planteaste.
¡Gracias!
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