Hvordan forbedre VBA Performance i Word

Optimalisere VBA ytelse i Microsoft Word ved å gjøre deg kjent med hvor mye minne forskjellige datatyper, operatører og funksjoner bruker. For eksempel "heltall" variabler blir automatisk konvertert til "lange" variabler, noe som betyr at det ville være klokere når det er mulig å bare erklære "lange" variabler i stedet for "heltall" variabler. Lignende triks finnes for mange andre VBA komponenter.

Bruksanvisning

variabler

1 Angi en datatype når du deklarerer en variabel, fordi uspesifiserte variabler er tildelt en variant type, og denne typen bruker mer minne enn de andre typene.

2 Bruk en valutadatatype over flyttallsdatatype når det er mulig. Det gir praktisk talt den samme funksjonalitet som den sistnevnte, men den kan behandles raskere.

3 Dra nytte av objektvariabler hvis du må referere til et objekt mer enn en gang i løpet av en modul, som den lagrer objektet variabel i minnet og dermed forhindrer VBA fra å måtte slå det opp hver eneste gang.

4 Oppbevares array elementer i midlertidige variablene før du kjører dem gjennom en loop, som det er mye tregere å hente dem gjennom en rekke.

5 Erklærer tomme variabler ved hjelp av "vbNullString" i stedet for anførselstegn. Ettersom «vbNullString" er en funksjon i stedet for en streng, kan det derfor bli behandlet litt raskere.

Blandet

6 Reduser sammenkjedingsoperatorer operasjoner når mulige ved å bruke "mid" funksjonen i stedet. Husk at erstatningsstrengen må være den samme lengde som treng du har tenkt å skifte ut.

7 Loop gjennom en samling med "for hver" statement istedet for å bruke en indeks. For eksempel, er det bedre å skrive "for hver variabel som VARIABLE_SUB" enn det er å skrive "for i = 1 til VARIABLE.count."

8 Utfør heltallsdivisjon med "\" heltallsdivisjon operatør fordi standard "/" flyt divisjon operatør alltid beregner en dobbel typeverdi.

9 Konverter streng tegn til ANSI verdier når man sammenligner strengvariabler. For eksempel uttrykket "hvis ASC (strText) = 32 og deretter" prosesser raskere enn uttrykket 'hvis venstre (strText, 1) = ""'.