Šī apmācība izskaidros VBA atmiņas kļūdu.
Kļūda VBA no atmiņas rodas, ja programma Excel ir izmantojusi visus jūsu ierīces resursus, kamēr darbojas makro, un burtiski beidzas atmiņa, lai turpinātu aprēķināt vai palaist kodu. Tas var notikt, ja darbojas daudzas lietojumprogrammas un mēģināt programmā Excel palaist lielu makro vai varbūt kļūdaini programmā Excel esat izveidojis pastāvīgu cilpu.
(Plašāku informāciju par VBA kļūdām skatiet mūsu kļūdu apstrādes rokasgrāmatā)
Atmiņas trūkuma cēloņi
Kļūda atmiņā var rasties, strādājot ar darbgrāmatu, kurā ir daudz darblapu un tūkstošiem rindu. Ja mēs izveidosim cilpu, kas darbojas ar lielu datu apjomu, var rasties kļūda atmiņā. Tas varētu notikt arī tad, ja mēs strādājam ar vairākiem objektiem un iestatām katru objektu ar SET paziņojumu, bet pēc tam neizdzēšam atsauces uz objektiem starp procedūrām vai cilpām.
Piemēram, šāda cilpa noteikti var izraisīt atmiņas kļūdu, ja jums ir atvērti vairāki faili ar vairākām lapām.
1234567891011121314 | Sub TestMemory ()Dim wb kā darbgrāmataDim ws kā darblapaDim i As SingleKatram wb lietojumprogrammā. Darba grāmatasPar katru ws In wb.SheetsDarīt līdz ActiveCell = "A1048576"ActiveCell = 1 + ii = i + 1ActiveCell. Offset (1, 0). AtlasietCilpaNākamais wsNākamais wbBeigu apakš |
Atmiņas trūkuma kļūdas novēršana
Atlaidiet objektus
Ja mēs strādājam ar cilpām un objektiem, mums jāpārliecinās, ka pēc tam, kad tas ir izmantots un vairs nav vajadzīgs, mēs iestatām objektu uz NEKĀDU - tas atbrīvos atmiņu.
VBA programmēšana | Kodu ģenerators strādā jūsu labā!
Pārliecinieties, vai darbojas tikai viena Excel instance
Ja mēs strādājam ar lieliem failiem un lielu datu apjomu, pārbaudiet, vai jums nav atvērtas vairākas Excel sesijas - tai ir jābūt atvērtai vienreiz. Veids, kā to pārbaudīt, ir doties uz uzdevumu pārvaldnieku un redzēt, cik Excel gadījumu darbojas.
Nospiediet Ctl+Alt+Delete uz tastatūras,
Klikšķiniet uz Uzdevumu pārvaldnieks un pārliecinieties, vai darbojas tikai viens Excel gadījums. Zemāk redzamajā grafikā ir viens gadījums ar 2 logiem.
Mēs varam arī pārbaudīt uzdevumu pārvaldniekā, vai fonā nedarbojas Excel gadījums (ti, nav redzams).
Ritiniet uz leju uzdevumu pārvaldniekā, līdz redzat Fona procesi un pārliecinieties, ka Excel nav šajā programmu sarakstā.
Pārbaudiet sava Excel faila lielumu
Bieži vien ir rindas un kolonnas, kurām ir piekļūts zem tām darblapās esošajām, kuras faktiski tiek izmantotas. Excel šajās šūnās izmanto atmiņu - pat ja šīs šūnas ir tukšas. Pārbaudiet faila lielumu, nospiežot CTRL+SHIFT+END uz tastatūras, lai redzētu, kur atrodas jūsu šūnu rādītājs. Ja tas atrodas krietni zem pēdējās izmantotās šūnas, noteikti izdzēsiet visas tukšās rindas un kolonnas virs šūnu rādītāja un pēc tam vēlreiz saglabājiet failu - tas samazinās jūsu Excel faila lielumu.
Citi veidi, kā pārbaudīt atmiņu
Ir vairāki citi veidi, kā atbrīvot atmiņu programmā Excel. Laba ideja ir aizvērt programmu Excel, ja to neizmantojat, un pēc tam atvērt to vēlāk - tas atbrīvos visu atmiņu, ko Excel saglabā, jo tai ir tendence saglabāt atmiņu pat tad, ja darbgrāmata nav atvērta! Vienmēr pārliecinieties, vai jūsu Office versija ir atjaunināta, pārbaudot, vai datorā nav atjauninājumu, un pārbaudiet, vai nav VBA pievienojumprogrammu, kas, iespējams, tiek izmantotas, bet kuras neizmantojat - varat tās atinstalēt, lai atbrīvotu vēl vairāk atmiņas.