Denne vejledning forklarer VBA -hukommelsesfejlen.
VBA -hukommelsesfejlen opstår, når Excel har brugt alle maskinens ressourcer, mens du kører en makro og bogstaveligt talt løber tør for hukommelse til at fortsætte beregning eller kørsel af kode. Dette kan forekomme, når du har mange programmer kørende og forsøger at køre en stor makro i Excel, eller måske når du har oprettet en evig loop i Excel ved en fejl.
(Se vores Fejlhåndteringsguide for mere information om VBA -fejl)
Årsager til fejl i hukommelse
Der kan opstå en fejl i hukommelsen, hvis man arbejder med en projektmappe, der indeholder mange regneark og tusinder af rækker. Hvis vi opretter en loop, der fungerer med en stor mængde data, kan der opstå en fejl i hukommelsen. Det kan også opstå, hvis vi arbejder med flere objekter og sætter hvert objekt med en SET -sætning, men derefter ikke rydder referencerne til objekterne mellem procedurer eller sløjfer.
For eksempel kan den følgende sløjfe helt sikkert forårsage en hukommelsesfejl, hvis du har flere filer åbne med flere ark.
1234567891011121314 | Sub TestMemory ()Dim wb Som projektmappeDim ws Som regnearkDim i Som singleFor hver wb i Application.WorkbooksFor hver ws i wb. ArkGør indtil ActiveCell = "A1048576"ActiveCell = 1 + ii = i + 1ActiveCell.Offset (1, 0) .VælgSløjfeNæste wsNæste wbAfslut Sub |
Forebyggelse af en fejl i hukommelsen
Slip objekter
Hvis vi arbejder med Loops and Objects, skal vi sørge for, at vi indstiller objektet til INTET, når det er blevet brugt, og det ikke længere er nødvendigt - dette frigiver hukommelse.
VBA -programmering | Kodegenerator virker for dig!
Sørg for, at kun én forekomst af Excel kører
Hvis vi arbejder med store filer og store datamængder, skal du kontrollere, at du ikke har flere Excel -sessioner åbne - den skal bare være åben én gang. En måde at kontrollere dette på er at gå til Jobliste og se, hvor mange forekomster af Excel der kører.
Trykke Ctl+Alt+Slet på tastaturet,
Klik på Jobliste og sørg for, at der kun er én forekomst af Excel, der kører. I nedenstående grafik er der en instans med 2 vinduer.
Vi kan også kontrollere i Jobliste, at der ikke kører Excel i baggrunden (dvs. ikke synlig).
Rul ned i Jobliste, indtil du ser Baggrundsprocesser og sørg for, at Excel ikke er på listen over programmer.
Kontroller størrelsen på din Excel -fil
Ofte er der rækker og kolonner, der er blevet åbnet under dem i dine regneark, der faktisk bruges. Excel bruger hukommelse i disse celler - selvom disse celler er tomme. Kontroller filens størrelse ved at trykke på CTRL+SKIFT+SLUT på tastaturet for at se, hvor din cellemarkør lander. Hvis den lander langt under den sidste celle, du bruger, skal du sørge for at slette alle de tomme rækker og kolonner over cellemarkøren og derefter gemme filen igen - dette reducerer størrelsen på din Excel -fil.
Andre måder at kontrollere hukommelse
Der er forskellige andre måder at frigøre hukommelse i Excel. En god idé er at lukke Excel, hvis du ikke bruger det, og derefter åbne det senere - dette frigør enhver hukommelse, som Excel gemmer, da det har en tendens til at gemme hukommelse, selv når en projektmappe ikke er åben! Sørg altid for, at din version af Office er opdateret ved at søge efter opdateringer på din pc og se efter eventuelle VBA -tilføjelser, der muligvis bruges, men som du ikke bruger - du kan afinstallere disse for at frigøre endnu mere hukommelse.