VBA – Erro Memória Insuficiente

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on August 19, 2023

Este tutorial explicará o erro de memória insuficiente do VBA.

O erro de memória insuficiente do VBA ocorre quando o Excel usa todos os recursos de sua máquina ao executar uma macro e literalmente fica sem memória para continuar calculando ou executando o código. Isso pode ocorrer quando você tem muitos aplicativos em execução e tenta executar uma macro grande no Excel, ou talvez quando você tenha criado um loop perpétuo no Excel por engano.

(Consulte nosso Guia de Tratamento de Erros  para obter mais informações sobre erros do VBA).

Causas do Erro de Memória Insuficiente

Um erro de memória insuficiente pode ocorrer quando se está trabalhando com uma pasta de trabalho que contém muitas planilhas e milhares de linhas. Se criarmos um loop que trabalhe com um grande volume de dados, poderá ocorrer um erro de falta de memória. Isso também pode ocorrer se estivermos trabalhando com vários objetos e definirmos cada objeto com uma instrução SET, mas não limparmos as referências aos objetos entre procedimentos ou loops.

Por exemplo, o loop a seguir pode definitivamente causar um erro de memória se você tiver vários arquivos abertos com várias planilhas.

Sub TestarMemoria()
 Dim wb As Workbook
 Dim ws As Worksheet
 Dim i As Single
 For Each wb In Application.Workbooks
    For Each ws In wb.Sheets
       Do Until ActiveCell = "A1048576"
          ActiveCell = 1 + i
          i = i + 1
          ActiveCell.Offset(1, 0).Select
       Loop
    Next ws
 Next wb
End Sub

 

erro memoria insuficiente

Como Evitar um Erro de Memória Insuficiente

Liberação de Objetos

Se estivermos trabalhando com Loops e Objetos, precisamos nos certificar de que definimos o Objeto como NOTHING (NADA) depois que ele tiver sido usado e não for mais necessário – isso liberará memória

liberacao de objetos

Certifique-se de que Apenas Uma Instância do Excel Esteja Sendo Executada

Se estivermos trabalhando com arquivos grandes e grandes quantidades de dados, verifique se não há várias sessões do Excel abertas – ele precisa ser aberto apenas uma vez. Uma maneira de verificar isso é acessar o Gerenciador de Tarefas e ver quantas instâncias do Excel estão em execução.

Pressione Ctl + Alt + Delete no teclado,

Clique em Gerenciador de tarefas e verifique se há apenas uma instância do Excel em execução. No gráfico abaixo, há uma instância com duas janelas.

gerenciador-de-tarefas

Também podemos verificar no Gerenciador de Tarefas se não há nenhuma instância do Excel em execução em segundo plano (ou seja, não visível).

Role para baixo no Gerenciador de tarefas até ver Processos em segundo plano e verifique se o Excel não está nessa lista de programas.

processos segundo plano

Verifique o Tamanho do Arquivo do Excel

Muitas vezes, há linhas e colunas que foram acessadas abaixo das que são realmente usadas em suas planilhas. O Excel usa memória nessas células, mesmo que elas estejam vazias. Verifique o tamanho do arquivo pressionando CTRL + SHIFT + END no teclado para ver onde o ponteiro da célula está. Se ele parar bem abaixo da última célula que estiver usando, certifique-se de excluir todas as linhas e colunas vazias acima do ponteiro da célula e, em seguida, salve novamente o arquivo – isso reduzirá o tamanho do arquivo do Excel.

Outras Maneiras de Verificar a Memória

Há várias outras maneiras de liberar memória no Excel. Uma boa ideia é fechar o Excel se não estiver usando-o e abri-lo mais tarde – isso liberará qualquer memória que o Excel esteja armazenando, pois ele tende a armazenar memória mesmo quando uma pasta de trabalho não está aberta! Certifique-se sempre de que sua versão do Office esteja atualizada, verificando se há atualizações em seu PC, e verifique se há algum suplemento VBA que possa estar sendo usado, mas que você não esteja usando – você pode desinstalá-lo para liberar ainda mais memória.

vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA