Mensagem de Memória Insuficiente - Dicas do Excel

Steven da Austrália escreve:

Eu criei uma macro VBA que precisa criar cerca de 50 gráficos de uma planilha. O problema é que toda vez que executo o programa, chego ao 33º gráfico, uma mensagem de erro exibe "Memória insuficiente", o programa Excel trava e tenho que encerrá-lo. Tenho 256 MB de RAM no meu PC e estou usando o Excel 97 em um sistema operacional Windows NT.

Você está criando cada gráfico como sua própria planilha de gráfico? O Excel pode lidar com 16 milhões de células em uma planilha, mas o segredo é que ele não pode lidar com muitas planilhas. O arquivo de ajuda diz que o número de planilhas é limitado pela "memória disponível".

Eu regularmente tenho o problema que você tem. É terrivelmente frustrante, porque você nunca sabe quando ele está prestes a falhar. Se o Visual Basic fornecesse um erro interceptável, você poderia interromper a macro, salvar o arquivo e iniciar em um novo arquivo. Mas eles não fazem - você apenas tem um acidente.

Já vi o travamento acontecer em 130 planilhas e já em 40. Você precisa avaliar onde ele vai travar em seu sistema e, em seguida, colocar um contador na macro. Se você acha que vai travar após 32 gráficos, pare o processo em 30 gráficos, salve-os em uma nova pasta de trabalho, feche essa pasta de trabalho e comece a criá-los novamente em uma nova pasta de trabalho.

Isso não é bonito, mas é a única solução alternativa que encontrei.

Outro pensamento - certifique-se de fechar cada módulo e formulário do usuário no Editor do Visual Basic usando o "X" no canto superior direito. Eu descobri que simplesmente fechando todos os componentes no Visual Basic antes de executar a macro, você pode liberar um pouco mais de memória e possivelmente inserir mais alguns gráficos na "memória disponível".

Acima, falei sobre fazer coisas para conservar a memória. Steven respondeu hoje com uma excelente descoberta:

Descobri que se definir Charts AutoScaleFont como False, poderia criar cerca de 120 gráficos, o que resolveu meu problema.

Por que isso é assim, eu não tenho ideia, mas isso é Excel. Excelente dica - guarde este como um método obscuro para conservar a memória.

Artigos interessantes...