Steven fra Australia skriver:
Jeg har laget en VBA-makro som må lage omtrent 50 diagrammer fra ett regneark. Problemet er at hver gang jeg kjører programmet når jeg kommer til det 33. diagrammet, vises en feilmelding "Ikke nok minne", så låses Excel-programmet opp og jeg må avslutte programmet. Jeg har 256 megabyte RAM på PC-en, og jeg bruker Excel 97 i et Windows NT-operativsystem.
Skaper du hvert diagram som sitt eget kartark? Excel kan håndtere 16 millioner celler på et regneark, men den stille hemmeligheten er at den ikke kan håndtere mange regneark. Hjelpefilen sier at antall regneark er begrenset av "tilgjengelig minne".
Jeg opplever regelmessig problemet du har. Det er fryktelig frustrerende, for du vet aldri når det er i ferd med å krasje. Hvis Visual Basic vil gi deg en feilbar feil, kan du stoppe makroen, lagre filen, starte i en ny fil. Men de gjør det ikke - du får bare et krasj.
Jeg har sett krasjen skje så sent som 130 regneark og så tidlig som 40. Du må måle hvor det skal krasje i systemet ditt, og deretter sette en teller i makroen. Hvis du tror du kommer til å krasje etter 32 diagrammer, stopper du prosessen ved 30 diagrammer, lagrer dem i en ny arbeidsbok, lukker arbeidsboken og begynner å lage dem igjen i en ny arbeidsbok.
Dette er ikke pent, men det er den eneste løsningen jeg har funnet.
En annen tanke - sørg for at du lukker hver modul og brukerform i Visual Basic Editor ved hjelp av "X" øverst til høyre. Jeg har funnet ut at ved å bare lukke alle komponentene i Visual Basic før du kjører makroen, kan du frigjøre litt mer minne og muligens presse noen flere diagrammer inn i "tilgjengelig minne".
Ovenfor snakket jeg om å gjøre ting for å spare minne. Steven skrev tilbake i dag med en utmerket oppdagelse:
Jeg fant ut at hvis jeg satte Charts AutoScaleFont til False, kunne jeg lage omtrent 120 diagram, som har løst problemet mitt.
Hvorfor dette er så aner jeg ikke, men det er Excel. Utmerket tips - ta denne bort som en uklar metode for å bevare hukommelsen.