Desde la actualización 2408 (agosto 2024) de Microsoft 365, miles de usuarios notaron que sus macros de Excel tardan minutos en completarse o incluso producen cuelgues por consumo excesivo de memoria. A continuación encontrarás una guía exhaustiva para diagnosticar, mitigar y solucionar el problema sin comprometer la seguridad de tu entorno.
Resumen del problema
La compilación 16.0.17925.x introdujo un bug que dispara el uso de CPU y RAM al ejecutar VBA, Power Query o al manejar libros con muchas fórmulas volátiles. El efecto se intensifica con archivos grandes (≥ 50 MB) y en sesiones prolongadas de Excel.
- Ejecución muy lenta de macros o bloqueo total.
- Fuga de memoria; Excel puede superar los 8 GB incluso con archivos pequeños.
- Retardo de 3‑10 s al escribir, guardar o cerrar libros.
- El Monitor de recursos muestra actividad inusual de
splwow64.exe
(subsistema de impresión) aun cuando no hay trabajos de impresión en cola. - Se reproduce en Windows 10 y 11, ediciones de 32 y 64 bits y afecta también a Access en algunas instalaciones.
Cómo saber si estás afectado
- Abre cualquier libro con macros o fórmulas recreables (por ejemplo, una macro que recalcule 10 000 filas).
- Presiona Alt + F11, ejecuta la macro y cronometra el tiempo. Si normalmente tarda < 10 s y ahora supera 60 s, es muy probable que tu compilación sea la defectuosa.
- En Excel ve a Archivo › Cuenta y revisa la línea Acerca de Excel. Si el número empieza por 2408 y la sub‑build es menor a
16.0.17928.20156
, necesitas actuar. - Abre el Administrador de tareas, pestaña Rendimiento. Ejecuta la macro de nuevo. Si la memoria usada por Excel crece continuamente y no libera al terminar, confirma la fuga.
Análisis técnico del fallo
El equipo de soporte de Microsoft identificó que un cambio en el motor de impresión universal (uniAPI) incluido en la build 2408 interactúa con los controladores de impresión GDI, provocando que Excel llame internamente a rutinas de spooler incluso sin órdenes explícitas de impresión. Cada una de esas llamadas crea objetos GDI que no se liberan con normalidad y se propaga a los hilos de VBA. El resultado visible es:
- Consumo de Handles: se dispara pasando de 2 000 a más de 20 000 en minutos.
- Retardo en la pila de cálculo: el motor recalc pierde prioridad y Windows Scheduler lo intercala con subprocesos del spooler.
- Bloqueo al cerrar: Excel intenta liberar objetos GDI huérfanos, tardando varios minutos o forzando cierre por parte del usuario.
Soluciones y medidas de contención
Objetivo | Acción | Detalles clave |
---|---|---|
Revertir a una versión estable | Volver a la versión 2407 (16.0.17830.20166) o anterior. | En Excel: Archivo › Cuenta › Opciones de actualización › Deshabilitar actualizaciones. Abre Símbolo del sistema como administrador. Ejecuta:cd "%programfiles%\Common Files\Microsoft Shared\ClickToRun" Reinicia todas las aplicaciones de Office y comprueba el rendimiento. |
Instalar el parche correctivo | Actualizar a la compilación 2408 (16.0.17928.20156) o posterior. | Microsoft liberó la corrección el 10‑11 sep 2024. En Archivo › Cuenta pulsa Actualizar ahora y verifica que la versión sea ≥ 16.0.17928.20156. Si apareces en un canal diferido, consulta a tu administrador para adelantar la actualización. |
Mitigar mientras llega el parche | Coloca el libro en una Ubicación de confianza (Centro de confianza). Trabaja en un equipo con versión 2406/2407. Cierra y abre Excel entre ejecuciones intensivas. | Recomendado si el equipo de TI bloquea actualizaciones o retrocesos. No elimina el error, pero reduce el impacto al liberar memoria. |
Escalada a Microsoft | Crear ticket en Centro de administración de Microsoft 365 › Soporte. | Facilita registros de dxdiag, ID de compilación y capturas de Resource Monitor. Permite confirmar si hay hotfix privado antes de la distribución pública. |
Ventajas y desventajas comparadas
Rollback a 2407
- ✔️ Mejora inmediata, mínima interrupción.
- ❌ Pierdes parches de seguridad de agosto y septiembre; aplica endurecimiento de macros (firma digital) mientras esperas.
Actualizar a 16.0.17928.20156
- ✔️ Conservarás todas las correcciones de seguridad y estabilidad.
- ❌ El parche tarda en llegar a Semi‑Annual Enterprise Channel; si tu organización está en ese canal, tal vez debas adelantar la rama (Targeted).
Mitigaciones temporales
- ✔️ No requieren reinstalar Office.
- ❌ Solo reducen los síntomas; el uso de memoria sigue escalando con macros largas.
Procedimiento detallado de rollback
Si decides volver a 2407, sigue estos pasos para evitar errores de checksum:
- Desconecta tu PC de la red corporativa VPN para que las políticas de actualización no reviertan el cambio durante el proceso.
- Comprueba que no haya ningún proceso
OfficeClickToRun.exe
activo. Si aparece, finalízalo desde el Administrador de tareas. - Ejecuta el comando indicado anteriormente. El paquete de reversión (~ 220 MB) se descargará del CDN oficial.
- Cuando aparezca “Cambios aplicados, se requieren reinicios”, reinicia Windows y abre Excel. El número de compilación debe mostrar 17830.x.
- Vuelve a habilitar las actualizaciones solo cuando el parche del canal que uses ya se haya verificado.
Instalación manual del parche correctivo
En muchas organizaciones, la directiva “Updates Enabled” está en modo None. Para forzar la instalación del parche sin esperar al ciclo automático:
- Descarga el paquete CAB correspondiente desde el Microsoft Update Catalog (consulta a tu administrador; evita URL públicas si tu política lo prohíbe).
- Ejecuta
wsusutil import
para integrarlo en WSUS o Intune. - Asigna la actualización a un anillo piloto (< 5 % de equipos) y monitoriza durante 48 h.
- Si no se detectan picos en CPU ni errores de aplicación (ID 1000), expande la implementación al 100 %.
Buenas prácticas mientras esperas la corrección
- Particiona tus datos: divide hojas mayores de 1 M filas en varios libros enlazados por Power Query.
- Evita fórmulas volátiles como
HOY()
yINDIRECTO()
; reemplázalas por celdas estáticas actualizadas vía macro puntual. - Apaga la actualización automática de vínculos en Opciones › Avanzadas.
- Deshabilita vistas previas de impresión para impedir llamadas al spooler.
- Cierra Excel cada 2‑3 h en sesiones de trabajo pesado para liberar los objetos GDI retenidos.
Automatización en entornos corporativos
Si administras cientos de equipos:
- Usa la Office Deployment Tool (ODT) con el canal deseado y bloquea 2408 en el
configuration.xml
mediante el atributoVersion
. - Crea un script PowerShell que lea el registro
HKLM\Software\Microsoft\Office\ClickToRun\Configuration
, detecte builds 17925.x y lance el rollback de modo silencioso (/quiet acceptalllicenses
). - Registra el evento en tu SIEM para tener trazabilidad de quién retrocede y cuándo.
- Programa una tarea programada que, a partir del 20 sep 2024, fuerce la subida a la build 17928.x una vez que el QA la apruebe.
Preguntas frecuentes
¿El fallo afecta a Excel 2019 perpetuo?
No. Sólo canales de Microsoft 365 basados en Click‑to‑Run con compilaciones 2408.
¿Puedo reemplazar splwow64.exe para mitigar?
No es recomendable. El archivo forma parte de Windows. El problema está en cómo Excel lo invoca.
¿La versión de Office de 32 bits sufre más?
Sí. Su límite de memoria (2‑4 GB) se alcanza antes, haciendo que la aplicación se cierre con Out of Memory.
¿Power BI Desktop se ve afectado?
No, porque usa su propio motor; sin embargo, Power Query en Excel sí hereda el bug.
¿Hay un hotfix exclusivo para Access?
El mismo parche 17928.x corrige Access y Excel simultáneamente.
Conclusión y recomendación práctica
La actualización 2408 introdujo un cambio bienintencionado en el subsistema de impresión que, inesperadamente, perjudicó el rendimiento de macros de Excel. La ruta más segura es volver temporalmente a 2407 o subir a 17928.x tan pronto esté disponible. Mientras tanto, aplica las mitigaciones propuestas para evitar pérdidas de productividad. Mantén un calendario de seguimiento y comunica a tus usuarios las señales de fuga de memoria, recordándoles cerrar Excel tras tareas extensas.