Este tutorial explicará el error de memoria insuficiente de VBA.
El error de memoria insuficiente de VBA se produce cuando Excel ha utilizado todos los recursos de su máquina mientras ejecuta una macro y literalmente se queda sin memoria para seguir calculando o ejecutando código. Esto podría ocurrir cuando tiene muchas aplicaciones ejecutándose e intenta ejecutar una macro grande en Excel, o quizás cuando ha creado un ciclo perpetuo en Excel por error.
(Consulte nuestra Guía de manejo de errores para obtener más información sobre los errores de VBA)
Causas del error de memoria insuficiente
Puede ocurrir un error de memoria insuficiente si uno está trabajando con un libro de trabajo que contiene muchas hojas de trabajo y miles de filas. Si creamos un bucle que funciona con un gran volumen de datos, podría ocurrir un error de memoria insuficiente. También podría ocurrir si estamos trabajando con varios objetos y configuramos cada objeto con una instrucción SET, pero luego no borramos las referencias a los objetos entre procedimientos o bucles.
Por ejemplo, el siguiente bucle definitivamente podría causar un error de memoria si tiene varios archivos abiertos con varias hojas.
1234567891011121314 | Sub TestMemory ()Dim wb como libro de trabajoDim ws como hoja de trabajoDim i como solteroPara cada wb en la aplicación.Para cada ws en wb.Hacer hasta que ActiveCell = "A1048576"ActiveCell = 1 + iyo = yo + 1ActiveCell.Offset (1, 0) .SeleccionarCírculoSiguiente wsSiguiente wbEnd Sub |
Prevención de un error de falta de memoria
Objetos de lanzamiento
Si estamos trabajando con bucles y objetos, debemos asegurarnos de que configuramos el objeto en NADA una vez que se ha utilizado y ya no se necesita; esto liberará memoria.
Programación VBA | ¡Code Generator funciona para usted!
Asegúrese de que solo se esté ejecutando una instancia de Excel
Si estamos trabajando con archivos grandes y grandes cantidades de datos, verifique que no tenga abiertas varias sesiones de Excel; solo debe abrirse una vez. Una forma de verificar esto es ir al Administrador de tareas y ver cuántas instancias de Excel se están ejecutando.
prensa Ctl + Alt + Suprimir en el teclado,
Haga clic en Administrador de tareas y asegúrese de que solo haya una instancia de Excel en ejecución. En el gráfico siguiente, hay una instancia con 2 ventanas.
También podemos verificar en el Administrador de tareas que no haya una instancia de Excel ejecutándose en segundo plano (es decir, no visible).
Desplácese hacia abajo en el Administrador de tareas hasta que vea Procesos de fondo y asegúrese de que Excel no esté en esa lista de programas.
Verifique el tamaño de su archivo de Excel
A menudo, hay filas y columnas a las que se ha accedido debajo de las que se utilizan en sus hojas de trabajo. Excel usa memoria en estas celdas, incluso si esas celdas están vacías. Verifique el tamaño del archivo presionando CTRL + MAYÚS + FIN en el teclado para ver dónde aterriza el puntero de su celda. Si cae muy por debajo de la última celda que está utilizando, asegúrese de eliminar todas las filas y columnas vacías sobre el puntero de la celda y luego vuelva a guardar el archivo; esto reducirá el tamaño de su archivo de Excel.
Otras formas de comprobar la memoria
Hay varias otras formas de liberar memoria en Excel. Una buena idea es cerrar Excel si no lo está usando y luego abrirlo más tarde; esto liberará cualquier memoria que Excel esté almacenando, ya que tiende a almacenar memoria incluso cuando un libro de trabajo no está abierto. Siempre asegúrese de que su versión de Office esté actualizada verificando Actualizaciones en su PC y verifique si hay complementos de VBA que se estén usando, pero que no esté usando; puede desinstalarlos para liberar aún más memoria.