Yshopnoosa.com

Hur man kan förbättra VBA-prestanda i Word

Optimera VBA-prestanda i Microsoft Word genom att bekanta dig med hur mycket minne olika data typer, operatorer och funktioner användning. Till exempel konverteras "heltal" variabler automatiskt till "långa" variabler, vilket innebär att det skulle vara klokare när det är möjligt att bara förklara "långa" variabler i stället för "heltal" variabler. Liknande tricks finns för många andra VBA-komponenter.

Instruktioner

Variabler

1 Ange en datatyp när du deklarerar en variabel, eftersom ospecificerade variabler tilldelas en variant typ, och denna typ använder mer minne än de andra typerna.

2 Utnyttja en valutadatatyp över floating-point datatypen när så är möjligt. Det erbjuder nästan samma funktioner som den senare, men den kan behandlas snabbare.

3 Dra nytta av objektvariabler om du måste referera till ett objekt mer än en gång inom en modul, eftersom den lagrar objektvariabeln i minnet och förhindrar VBA behöva titta upp varje gång.

4 Lagra vektorelement i tillfälliga variabler innan du kör dem genom en loop, som det är mycket långsammare att hämta dem genom en matris.

5 Deklarera Tom variabler med hjälp av "vbNullString" i stället för dubbla citattecken. Eftersom "vbNullString" är en funktion i stället för en sträng, kan den därför behandlas något snabbare.

Diverse

6 Minska sammanfogning verksamheten när det är möjligt genom att använda funktionen "mitten" istället. Tänk på att ersättningssträngen måste vara av samma längd som delsträngen du tänker ersätta.

7 Loopa igenom en samling med uttrycket "för varje" och inte med hjälp av ett index. Till exempel, är det bättre att skriva "för varje variabel som VARIABLE_SUB" än det är att skriva "för i = 1 till VARIABLE.count."

8 Utföra heltalsdivision med "\" heltal divisionsoperatorn eftersom divisionsoperatorn standard "/" floating-point alltid beräknar ett dubbel TYPVÄRDE.

9 Konvertera sträng tecken till ANSI värden när man jämför string-variabler. Till exempel uttrycket "om asc(strText) = 32 då" bearbetar snabbare än uttrycket "om lämnade (strText, 1) =" "'.