Denne opplæringen vil forklare VBA -minnefeilen.
VBA -minne -feilen oppstår når Excel har brukt alle ressursene på maskinen din mens du kjørte en makro og bokstavelig talt går tom for minne for å fortsette beregning eller kjøring av kode. Dette kan oppstå når du har mange programmer som kjører og prøver å kjøre en stor makro i Excel, eller kanskje når du har opprettet en evigvarende sløyfe i Excel ved en feil.
(Se vår feilhåndteringsguide for mer informasjon om VBA -feil)
Årsaker til feil med minne
En feil med minne kan oppstå hvis en jobber med en arbeidsbok som inneholder mange regneark og tusenvis av rader. Hvis vi lager en sløyfe som fungerer med et stort datamengde, kan det oppstå en feil med minne. Det kan også skje hvis vi jobber med flere objekter og setter hvert objekt med en SET -setning, men ikke fjerner referansene til objektene mellom prosedyrer eller sløyfer.
For eksempel kan følgende sløyfe definitivt forårsake en minnefeil hvis du har flere filer åpne med flere ark.
1234567891011121314 | Sub TestMemory ()Dim wb Som arbeidsbokDim ws Som regnearkDim i Som singelFor hver wb I Application.WorkbooksFor hver ws i wb. ArkGjør til ActiveCell = "A1048576"ActiveCell = 1 + ii = i + 1ActiveCell.Offset (1, 0) .VelgLøkkeNeste wsNeste wbSlutt Sub |
Forhindre feil på minnet
Slipp objekter
Hvis vi jobber med Loops and Objects, må vi sørge for at vi setter objektet til INGENTING når det har blitt brukt og det ikke lenger er nødvendig - dette vil frigjøre minne.
VBA -programmering | Kodegenerator fungerer for deg!
Sørg for at bare én forekomst av Excel kjører
Hvis vi jobber med store filer og store datamengder, må du kontrollere at du ikke har flere økter med Excel åpen - den må bare være åpen en gang. En måte å kontrollere dette på er å gå til Oppgavebehandling og se hvor mange forekomster av Excel som kjører.
trykk Ctl+Alt+Delete på tastaturet,
Klikk på Oppgavebehandling og sørg for at det bare er én forekomst av Excel som kjører. I grafikken nedenfor er det en forekomst, med 2 vinduer.
Vi kan også sjekke i oppgavebehandling at det ikke er noen forekomst av Excel som kjører i bakgrunnen (dvs. ikke synlig).
Rull ned i Oppgavebehandling til du ser Bakgrunnsprosesser og sørg for at Excel ikke er i listen over programmer.
Kontroller størrelsen på Excel -filen
Ofte er det rader og kolonner som er tilgjengelig under de i regnearkene som faktisk brukes. Excel bruker minne i disse cellene - selv om cellene er tomme. Kontroller størrelsen på filen ved å trykke CTRL+SKIFT+SLUTT på tastaturet for å se hvor cellepekeren din lander. Hvis den lander godt under den siste cellen du bruker, må du sørge for å slette alle de tomme radene og kolonnene over cellepekeren og deretter lagre filen på nytt - dette reduserer størrelsen på Excel -filen.
Andre måter å kontrollere minnet på
Det er flere andre måter å frigjøre minne i Excel. En god idé er å lukke Excel hvis du ikke bruker det, og deretter åpne det senere - dette vil frigjøre alt minne som Excel lagrer ettersom det pleier å lagre minne selv når en arbeidsbok ikke er åpen! Sørg alltid for at versjonen av Office er oppdatert ved å se etter oppdateringer på PCen og se etter eventuelle VBA -tillegg som kan brukes, men som du ikke bruker - du kan avinstallere disse for å frigjøre enda mer minne.