Makroer køre langsommere i Nyere Excel?

Dave har en Windows XP-system, der stadig har en gammel version af Excel 97 på den. Dette system har en makro, der bruges til at behandle oplysninger i et regneark. Det er i stand til at behandle 500 rækker af information i omkring 12 sekunder. På en nyere maskine, der kører Excel 2010 under Windows 7, den samme makro opererer på samme data tager ca. 3 til 4 minutter at køre. Begge maskiner har den samme mængde hukommelse (4 GB) og sammenlignelige processorer. Dave undrer makroen kører så meget langsommere på den nyere version af Excel.

Det er meget svært at gøre noget, men den mest almindelige bemærkninger, uden faktisk at se koden, men det betyder ikke, at der er ikke noget at sige. :>) Den første ting, du ønsker at gøre, er at kontrollere, at se, hvordan din makro gør sit arbejde. For eksempel betyder det gå gennem alle rækker i regnearket til at gøre sit behandling? (Selv om makroen behandler 500 rækker af information betyder ikke, det er ikke at træde igennem hver række i regnearket.) Grunden til dette kan være kritisk er fordi tidligere versioner af Excel bruges kun 65.000 rækker i et regneark, hvorimod de nyeste versioner kan håndtere 16 gange så mange rækker (over 1.000.000). Hvis din makro tog 12 sekunder at køre før, 16 gange så lang tid ville være 192 sekunder, hvilket er mellem 3 og 4 minutter.

Der er også rapporter om, at Excel 2010 kommunikerer temmelig regelmæssigt med printerdriveren, på en måde ikke gjort i tidligere versioner af Excel. Du kan finde ud af, om dette er aftagende din makro ved at slukke for kommunikationen i starten af ​​din makro:

Application.PrintCommunication = False

Ved slutningen af ​​din makro, skal du huske at sætte ejendommen tilbage til Sand, så Excel igen kan kommunikere med printeren.

Det kunne også være, at der er noget andet med den nyere maskine, selv om forskellen er subtil. For eksempel kunne den nyere maskine har forskellige baggrunde programmer, der kører, at den ældre maskine-alt fra et anti-virus program til at talegenkendelsessoftware. Desuden kan det have nogle forskellige Excel tilføjelsesprogrammer loading, der ikke er på den tidligere ordning. Du ville ikke tro, at sådanne ting ville påvirke makro ydeevne, men de virkelig kunne. Du vil ikke vide, naturligvis, indtil du opspore hvad indlæses, skal du deaktivere den og derefter prøve at køre din makro igen.

Ligeledes kunne det være, at den nyere maskine har nogle eksterne enheder, der er nødvendige for at polle periodisk som kunne bremse tingene ned. Jeg har et system på mit kontor, der har en ekstern harddisk, der er tilsluttet via en USB-port. Til tider selve systemet (Windows), har brug for at gå ud og power-up det eksterne drev, og tingene i det væsentlige stoppe på computeren, mens det sker. Guilty enheder kan være USB vedhæftede filer, scannere, netværksdrev osv Det kan være meget frustrerende, især når det sinker noget, der bør ikke tage lang tid overhovedet.

Et godt forslag i dette tilfælde er at ikke alene stole på hvad du finder med en enkelt Excel 2010 system. Hvis du har adgang til flere maskiner, måske endda nogle ud af kontoret-prøve makroen på dem for at se hvad der sker. Hvis det kører hurtigere, så ved du, at der er noget uset på spil på den langsomme 2010-systemet.

Hvis du opdager, at alt virkelig er "lige", så kan det være nødvendigt at komme ind i Visual Basic på systemet og begynde at gøre nogle timingen af ​​de forskellige dele af din makro. Det er kedeligt, men det kan hjælpe dig med at indsnævre hvor præcis er makroen bogging ned.

Hvis du beslutter at gå denne sidstnævnte rute, vil du finde det umagen værd at investere i en god Excel VBA programmør opslagsbog. Der er flere på markedet, så shoppe rundt lidt. (Du kan ikke gå galt med noget forfattet af J. Walkenbach, og jeg har hørt gode ting om Excel 2007 VBA programmeringsruden Reference.)

ExcelTips er din kilde til omkostningseffektiv Microsoft Excel træning. Dette tip (12440) gælder for Microsoft Excel 2010.


© 2021 Zajacperrone.com | Contact us: webmaster# zajacperrone.com