Estoy haciendo una macro que consiste en lo siguiente:
Vaya a una carpeta, abra el primer excel, aplique un RefreshAll, lo guarde y cierre, y pase al siguiente.
Estos exceles tienen conexiones de datos externas, que son las que quiero que me actualice, pero no lo hace. Pero si lo hago manualmente (abro excel, le doy en Datos a RefreshAll), sí me funciona.
Este es el código que estoy aplicando:
Sub AbrirArchivos()
'Paso1: Declarar las variables
Dim Archivos As String
'Paso2: especificar una carpeta y el tipo de archivo que buscamos.
'En este caso la carpeta se lla "RFC2" y el tipo de dato es "xslx"
Archivos = Dir("C:\Users\Desktop\2. RFC2\*.xlsx")
Do While Archivos <> ""
'Paso 3: Abrir los libros uno por uno
Workbooks.Open "C:\Users\Desktop\2. RFC2\" & Archivos
'Paso 4: Se coloca el código que se quiere correr.
' En este caso actualizar los datos
ActiveWorkbook.RefreshAll
ActiveWorkbook.Close SaveChanges:=True
'Paso 6: Buscar el siguiente archivo en la carpeta para volver a seguir la secuencia
Archivos = Dir
Loop
End Sub
¿Alguna idea de por qué no me actualiza bien esos datos externos?
He descartado que sea problema de "Habilitar Contenido" porque la he probado también después de abrir cada excel y habilitarlo.
Gracias de antemano
Featured Replies
Archivado
Este tema está ahora archivado y está cerrado a más respuestas.
Buenas,
Estoy haciendo una macro que consiste en lo siguiente:
Vaya a una carpeta, abra el primer excel, aplique un RefreshAll, lo guarde y cierre, y pase al siguiente.
Estos exceles tienen conexiones de datos externas, que son las que quiero que me actualice, pero no lo hace. Pero si lo hago manualmente (abro excel, le doy en Datos a RefreshAll), sí me funciona.
Este es el código que estoy aplicando:
Sub AbrirArchivos() 'Paso1: Declarar las variables Dim Archivos As String 'Paso2: especificar una carpeta y el tipo de archivo que buscamos. 'En este caso la carpeta se lla "RFC2" y el tipo de dato es "xslx" Archivos = Dir("C:\Users\Desktop\2. RFC2\*.xlsx") Do While Archivos <> "" 'Paso 3: Abrir los libros uno por uno Workbooks.Open "C:\Users\Desktop\2. RFC2\" & Archivos 'Paso 4: Se coloca el código que se quiere correr. ' En este caso actualizar los datos ActiveWorkbook.RefreshAll ActiveWorkbook.Close SaveChanges:=True 'Paso 6: Buscar el siguiente archivo en la carpeta para volver a seguir la secuencia Archivos = Dir Loop End Sub
¿Alguna idea de por qué no me actualiza bien esos datos externos?
He descartado que sea problema de "Habilitar Contenido" porque la he probado también después de abrir cada excel y habilitarlo.
Gracias de antemano