Saltar al contenido

Macro VBA Refresh All no funciona


Recommended Posts

publicado

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

publicado

Me contesto a mí mismo, he tenido que incluir en el código deshabilitar la propiedad BackgroundQuery para que el RefreshAll funcionara correctamente.

Copio y pego información de otro foro:

"the Refresh method has a BackgroundQuery argument that you can set to False, but RefreshAll does not. Also, you can loop through all your querytables and set the QueryTable.BackgroundQuery property to False in code."

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.