Hem Sociala medier Excel 2016 VBA Speed ​​Tips - dummies

Excel 2016 VBA Speed ​​Tips - dummies

Innehållsförteckning:

Video: 6 Ways to Speed up your Excel Macros 2024

Video: 6 Ways to Speed up your Excel Macros 2024
Anonim

VBA för Excel 2016 är snabb, men det är inte alltid tillräckligt snabbt. (Datorprogrammen är aldrig tillräckligt snabba.) Fortsätt läsa för att upptäcka några programmeringsexempel som du kan använda för att påskynda dina makron.

Stäng av skärmuppdatering

När du kör ett makro kan du luta dig tillbaka och titta på all skärmverkan som inträffar i makron. Även om du gör det här kan det vara lärorikt, efter att du har fått makroen att fungera ordentligt, är det ofta irriterande och kan långsamt minska ditt makros prestanda. Lyckligtvis kan du inaktivera skärmuppdateringen som normalt inträffar när du kör ett makro. För att stänga av skärmens uppdatering, använd följande uttalande:

Application. ScreenUpdating = False

Om du vill att användaren ska se vad som händer när som helst under makroet använder du följande påstående om du vill aktivera skärmens uppdatering:

Application. ScreenUpdating = True

För att visa skillnaden i hastighet, kör det här enkla makroet, vilket fyller ett intervall med siffror:

Sub FillRange () Dimma så länge, c Så länge Dim Dim Number as Long Number = 0 För r = 1 till 50 för c = 1 till 50 nummer = antal + 1 celler (r, c). Välj celler (r, c). Värde = Antal Nästa c Nästa r Slut Sub

Du ser att varje cell väljs och värdet anges i cellerna. Lägg nu följande inlägg i början av proceduren och kör det igen:

Application. ScreenUpdating = False

Sortimentet fylls mycket snabbare och du ser inte resultatet tills makroen är klar och uppdateringen av skärmen ställs automatiskt in på True.

När du är debugging-kod slutar programkörningen ibland någonstans i mitten utan att du har vänt på skärmuppdatering igen. Detta orsakar ibland att Excel-applikationsfönstret blir helt oansvarigt. Vägen ut ur denna frusna tillstånd är enkel: Gå tillbaka till VBE, och kör följande påstående i fönstret Omedelbart:

Application. ScreenUpdating = True

Släcker automatisk beräkning

Om du har ett arbetsblad med många komplexa formler kan du upptäcka att du kan påskynda saker väsentligt genom att ställa in beräkningsläget manuellt medan makroet körs. När makroen är klar, ställ in beräkningsläget tillbaka till automatiskt.

Följande redogörelse ställer in Excel-beräkningsläget till manuell:

Application. Beräkning = xlCalculationManual

Utför nästa uttalande för att ställa in beräkningsläget automatiskt:

Application. Beräkning = xlCalculationAutomatic

Om din kod använder celler med formelresultat, innebär avstängning att cellerna inte kommer att beräknas om du inte uttryckligen säger Excel att göra det!

Eliminera de irriterande varningsmeddelandena

Som du vet kan ett makro automatiskt utföra en rad åtgärder. I många fall kan du starta ett makro och sedan hänga i pausrummet medan Excel gör sin sak. Vissa Excel-funktioner visar dock meddelanden som kräver ett mänskligt svar. Dessa typer av meddelanden innebär att du inte kan lämna Excel obevakad när den kör ditt makro - om du inte känner till det hemliga tricket.

Du kan instruera Excel att inte visa dessa typer av varningar när du kör ett makro.

Det hemliga tricket att undvika dessa varningsmeddelanden sätter in följande VBA-formulär i ditt makro:

Application. DisplayAlerts = False

Excel kör standardoperationen för dessa typer av meddelanden. Vid radering av ett ark är standardoperationen Radera. Om du inte är säker på vad standardoperationen är, utför ett test för att se vad som händer.

När proceduren avslutas, återställer Excel automatiskt egenskapen DisplayAlerts till True. Om du behöver slå på varningarna igen innan proceduren avslutas, använd det här uttalandet:

Application. DisplayAlerts = True

Förenkla objektreferenser

Som du säkert vet redan kan referenser till objekt bli mycket långa. Till exempel kan en fullständigt kvalificerad referens till ett Range-objekt se ut så här:

Arbetsböcker ("MyBook. Xlsx"). Arbetsblad ("Sheet1") _. Område ("InterestRate")

Om ditt makro ofta använder detta intervall kanske du vill skapa en objektvariabel med hjälp av kommandot Ange. Till exempel tilldelas följande raderingsobjekt till en objektvariabel med namnet Rate:

Set Rate = Workbooks ("MyBook. Xlsx") _. Arbetsblad (”Blad1”). Range ("InterestRate")

När du har definierat den här objektvariabeln kan du använda variabelhastigheten snarare än den långa referensen. Du kan till exempel ändra värdet på cellen som heter InterestRate:

Rate. Värde =. 085

Det här är mycket lättare att skriva än följande uttalande:

Arbetsböcker ("MyBook. Xlsx"). Arbetsblad (”Blad1”). _ Range ("InterestRate") =. 085

Förutom att förenkla din kodning, använder objektvariablerna din makron avsevärt.

Deklarera variabla typer

Du behöver vanligtvis inte oroa dig för vilken typ av data du tilldelar en variabel. Excel hanterar alla detaljer för dig bakom kulisserna. Om du till exempel har en variabel som heter MyVar, kan du tilldela ett antal av vilken typ som helst till den variabeln. Du kan till och med tilldela en textsträng till den senare i proceduren.

Om du vill att dina förfaranden ska utföras så snabbt som möjligt, berätta Excel vilken typ av data som ska tilldelas var och en av dina variabler. Detta är känt som deklarerar en variabels typ.

I allmänhet bör du använda datatypen som kräver det minsta antalet bitar men ändå kan hantera all data som tilldelats den. När VBA arbetar med data beror exekveringshastigheten på antalet bytes som VBA har till sitt förfogande. Med andra ord, ju färre bytesdataanvändningar, desto snabbare VBA kan komma åt och manipulera data.Ett undantag till detta är integerdatatypen. Om hastigheten är kritisk, använd den långa datatypen istället.

Om du använder en objektvariabel kan du deklarera variabeln som en viss objekttyp. Här är ett exempel:

Dimma som Range Set Rate = Arbetsböcker ("MyBook. Xlsx") _. Arbetsblad (”Blad1”). Range ("InterestRate")

Använda med-slut med struktur

Behöver du ange ett antal egenskaper för ett objekt? Din kod körs snabbare om du använder strukturen With-End With. En ytterligare fördel är att din kod kan vara lättare att läsa.

Följande kod använder inte Slut med:

Val. HorizontalAlignment = xlCenter Selection. VerticalAlignment = xlCenter Selection. WrapText = True Selection. Orientering = 0 Urval. ShrinkToFit = Felval. MergeCells = False

Här är samma kod som omskrivs för att använda With-End With:

Med Selection. HorizontalAlignment = xlCenter. VerticalAlignment = xlCenter. WrapText = True. Orientering = 0. ShrinkToFit = False. MergeCells = False End With

När du använder With-End With, se till att varje uttalande börjar med en punkt.

Excel 2016 VBA Speed ​​Tips - dummies

Redaktörens val

Organisera e-postmarknadsföring innehåll för att matcha dina mål - dummies

Organisera e-postmarknadsföring innehåll för att matcha dina mål - dummies

När du utvecklar e-postmarknadsföring innehåll, överväga hur din publik kommer att uppleva dina avsikter. E-postmeddelanden ger större mening åt dina framtidsutsikter och kunder när innehållet du skapar och levererar är knutet samman under kända teman. När din tid är begränsad kan du bli frestad att skapa e-postinnehåll som passar ditt schema bättre ...

Nya formulärinmatningstyper i HTML5 - dummies

Nya formulärinmatningstyper i HTML5 - dummies

HTML-formulär är centrerade kring det ödmjuka men flexibla inmatningselementet . HTML5 lägger till ett antal väldigt användbara former av inmatning som hjälper till att göra HTML till ett mer modernt användargränssnitt. Även om stöd för dessa taggar inte är universellt är det säkert att börja använda dem nu. Varje webbläsare (även IE6) som inte förstår den avancerade ...

Utföra visuell designtest på en ny webbplats - dummies

Utföra visuell designtest på en ny webbplats - dummies

Det visuella designteamet för en webbplats kan skapa några olika "look and feel" -alternativ och testa dem med användare. Den här designen kallas perfekt för att passera en hemsida och en inre eller undersida av din webbplats, men de är inte 100 procent korrekta när det gäller ...

Redaktörens val

Objektiv till dina digitala SLR-dummies

Objektiv till dina digitala SLR-dummies

Zoomlinser är inte den enda typen av linser som är tillgängliga för din dSLR . Du borde veta hur de skiljer sig från de andra alternativen. Här är några av alternativen till zoomlinser i allmänhet och vanliga zoomlinser i synnerhet. Prime-objektiv En primärlins har en fast brännvidd. En lins med fast fokusering ...

Hur man skapar bra belysning för din digitala fotografi - dummies

Hur man skapar bra belysning för din digitala fotografi - dummies

Ja, du kan återskapa bra belysning om du vet vad du gör. Och ingenting kan förstöra ett foto snabbare än dålig belysning. Du kan göra många förbättringar till ett utmanande ämne helt enkelt genom att använda bra belysningsteknik. Din farbrors skalliga huvud, en tonåring som är mindre än perfekt, en hård upplyst strandplats, en droppe ...

ÖKa bildförstoring med telekonverterare - dummies

ÖKa bildförstoring med telekonverterare - dummies

En telekonverter är en sekundärlins som du placerar mellan din lins och kamerokroppen (precis som förlängningsröret). En telekonverter tar emot bilden som skapats av din lins och ger en förstorad version av den till kamerans digitala sensor. Detta kan vara ett användbart verktyg i makrofotografering men kan också vara ...

Redaktörens val

Undvik hack på sårbara trådlösa arbetsstationer - dummies

Undvik hack på sårbara trådlösa arbetsstationer - dummies

Trådlösa arbetsstationer har massor av säkerhetsproblem och kan vara inriktade på hackar - från svaga lösenord till opatchade säkerhetshål till lagring av WEP- och WPA-krypteringsnycklar lokalt. De flesta av de kända trådlösa klientens sårbarheter har blivit patchade av sina respektive leverantörer, men du vet aldrig om alla dina trådlösa system är ...

Grundläggande Mac Network Settings - dummies

Grundläggande Mac Network Settings - dummies

De flesta nätverksinställningarna på en Mac är automatiska. Om du föredrar kan du titta på och ändra standardnätverksinställningarna genom att följa dessa steg: