ВБА грешка због недостатка меморије

Овај водич ће објаснити ВБА грешку због недостатка меморије.

До грешке ВБА Нема меморије долази када је Екцел искористио све ресурсе ваше машине током извођења макроа и дословно му је понестало меморије за наставак израчунавања или покретања кода. То би се могло догодити када имате пуно покренутих апликација и покушате покренути велики макро у Екцелу, или можда ако сте грешком створили трајну петљу у Екцелу.

(За више информација о ВБА грешкама погледајте наш Водич за руковање грешкама)

Узроци грешке због недостатка меморије

До грешке при недостатку меморије може доћи ако радите са радном свеском која садржи много радних листова и хиљаде редова. Ако створимо петљу која ради са великом количином података, може доћи до грешке у недостатку меморије. То се такође може догодити ако радимо са више објеката и сваки објекат поставимо помоћу израза СЕТ, али тада не бришемо референце на објекте између процедура или петљи.

На пример, следећа петља би дефинитивно могла да изазове грешку у меморији ако имате више датотека отворених са више листова.

1234567891011121314 Суб ТестМемори ()Дим вб Као радна свескаДим вс Ас ВорксхеетДим и Ас СинглеЗа сваку вб Ин Апплицатион.ВоркбооксЗа сваки вс У вб.СхеетсУради до АцтивеЦелл = "А1048576"АцтивеЦелл = 1 + ии = и + 1АцтивеЦелл.Оффсет (1, 0) .ОдаберитеЛоопНект всНект вбЕнд Суб

Спречавање грешке због недостатка меморије

Релеасе Објецтс

Ако радимо са петљама и објектима, морамо бити сигурни да смо поставили Објекат на НИШТА када се користи и више му није потребан - ово ће ослободити меморију.

ВБА програмирање | Генератор кода ради за вас!

Уверите се да је покренута само једна инстанца програма Екцел

Ако радимо са великим датотекама и огромним количинама података, проверите да немате више отворених сесија програма Екцел - потребно је да га отворите само једном. Начин да то проверите је да одете у Управитељ задатака и видите колико инстанци програма Екцел ради.

Притисните Цтл+Алт+Делете на тастатури,

Кликните на Управљач задацима и уверите се да постоји само једна инстанца програма Екцел. На доњој слици постоји једна инстанца са 2 прозора.

Такође можемо да проверимо у Управитељу задатака да у позадини не постоји инстанца програма Екцел (тј. Није видљива).

Померајте се надоле у ​​Управитељу задатака док не видите Позадински процеси и уверите се да Екцел није на тој листи програма.

Проверите величину Екцел датотеке

Често постоје редови и колоне којима се приступа испод оних на вашим радним листовима који се заправо користе. Екцел користи меморију у овим ћелијама - чак и ако су те ћелије празне. Проверите величину датотеке притиском на ЦТРЛ+СХИФТ+ЕНД на тастатури да видите где се налази показивач ћелије. Ако падне знатно испод последње ћелије коју користите, обавезно избришите све празне редове и колоне изнад показивача на ћелију, а затим поново сачувајте датотеку - то ће смањити величину ваше Екцел датотеке.

Други начини провере меморије

Постоје различити други начини за ослобађање меморије у програму Екцел. Добра идеја је да затворите Екцел ако га не користите, а затим га касније отворите - ово ће ослободити сву меморију коју Екцел складишти јер тежи да складишти меморију чак и када радна свеска није отворена! Увек се уверите да је ваша верзија система Оффице ажурирана тако што ћете проверити да ли постоје ажурирања на рачунару и да ли постоје додаци ВБА који се можда користе, али које не користите - можете их деинсталирати да бисте ослободили још више меморије.

wave wave wave wave wave