Este tutorial explicará o erro de falta de memória do VBA.
O erro VBA Out of Memory ocorre quando o Excel usou todos os recursos da sua máquina ao executar uma macro e literalmente ficou sem memória para continuar a calcular ou executar 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, por engano, cria um loop perpétuo no Excel.
(Consulte nosso Guia de tratamento de erros para obter mais informações sobre erros VBA)
Causas do erro de falta de memória
Um erro de falta de memória pode ocorrer se alguém estiver trabalhando com uma pasta de trabalho que contém muitas planilhas e milhares de linhas. Se criarmos um loop que funcione com um grande volume de dados, pode ocorrer um erro de falta de memória. 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 seguinte loop pode definitivamente causar um erro de memória se você tiver vários arquivos abertos com várias planilhas.
1234567891011121314 | Sub TestMemory ()Dim wb como pasta de trabalhoDim ws como planilhaDim i As SinglePara cada wb no aplicativo.Para cada ws em wb.heetsDo Até ActiveCell = "A1048576"ActiveCell = 1 + ii = i + 1ActiveCell.Offset (1, 0) .SelecionarCicloPróximo wsPróximo wbEnd Sub |
Prevenindo um erro de falta de memória
Objetos de liberação
Se estivermos trabalhando com Loops e Objetos, precisamos ter certeza de que definimos o Objeto como NADA uma vez que tenha sido usado e não seja mais necessário - isso irá liberar memória.
Programação VBA | O Code Generator funciona para você!
Certifique-se de que apenas uma instância do Excel esteja em execução
Se estivermos trabalhando com arquivos grandes e grandes quantidades de dados, verifique se você não tem várias sessões do Excel abertas - ele precisa ser aberto apenas uma vez. Uma forma 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 certifique-se de que haja apenas uma instância do Excel em execução. No gráfico abaixo, existe uma instância, com 2 janelas.
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 de Fundo e certifique-se de que o Excel não esteja na lista de programas.
Verifique o tamanho do seu arquivo Excel
Freqüentemente, há linhas e colunas que foram acessadas abaixo daquelas em suas planilhas que são realmente usadas. O Excel usa memória nessas células - mesmo se essas células estiverem vazias. Verifique o tamanho do arquivo pressionando CTRL + SHIFT + END no teclado para ver onde o ponteiro do celular vai parar. Se ele cair bem abaixo da última célula que você está 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 seu arquivo Excel.
Outras maneiras de verificar a memória
Existem 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 irá 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! Sempre certifique-se de que sua versão do Office está atualizada, verificando se há atualizações em seu PC e verifique se há suplementos VBA que podem estar sendo usados, mas que você não está usando - você pode desinstalá-los para liberar ainda mais memória.