Excel 2016 VBA-hastighetstips

VBA för Excel 2016 är snabbt, men det är inte alltid tillräckligt snabbt. (Datorprogram ä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 snabba upp dina makron.

Stänger av skärmuppdatering

När du kör ett makro kan du luta dig tillbaka och titta på alla åtgärder på skärmen som sker i makrot. Även om det kan vara lärorikt att göra detta, är det ofta irriterande efter att du fått makrot att fungera ordentligt och kan sakta ner prestandan för ditt makro avsevärt. Lyckligtvis kan du inaktivera skärmuppdateringen som normalt sker när du kör ett makro. För att stänga av skärmuppdatering, använd följande uttalande:

Application.ScreenUpdating = Falskt

Om du vill att användaren ska se vad som händer när som helst under makrot, använd följande uttalande för att aktivera skärmuppdateringen igen:

Application.ScreenUpdating = Sant

För att visa skillnaden i hastighet, kör detta enkla makro, som fyller ett intervall med siffror:

Sub FillRange()
  Dim r som lång, c så lång
  Dim nummer lika lång
  Tal = 0
  För r = 1 till 50
    För c = 1 till 50
      Nummer = siffra + 1
      Celler(r, c). Välj
      Celler(r, c).Värde = Antal
    Nästa c
  Nästa r
Avsluta Sub

Du ser att varje cell markeras och värdet skrivs in i cellerna. Infoga nu följande sats i början av proceduren och kör den igen:

Application.ScreenUpdating = Falskt

Området fylls mycket snabbare och du ser inte resultatet förrän makrot är klart och skärmuppdateringen är (automatiskt) inställd på True.

När du felsöker kod slutar programkörningen ibland någonstans i mitten utan att du har aktiverat skärmuppdatering igen. Detta gör ibland att Excels programfönster inte svarar helt. Vägen ut ur detta frusna tillstånd är enkel: Gå tillbaka till VBE och kör följande sats i fönstret Immediate:

Application.ScreenUpdating = Sant

Stänger av automatisk beräkning

Om du har ett kalkylblad med många komplexa formler kan du upptäcka att du kan påskynda saker och ting avsevärt genom att ställa in beräkningsläget till manuellt medan ditt makro körs. När makrot är klart, ställ tillbaka beräkningsläget till automatiskt.

Följande sats ställer in Excel-beräkningsläget till manuellt:

Application.Calculation = xlCalculationManual

Kör nästa programsats för att ställa in beräkningsläget till automatiskt:

Application.Calculation = xlCalculationAutomatic

Om din kod använder celler med formelresultat, innebär det att stänga av beräkning att cellerna inte kommer att räknas om om du inte uttryckligen säger åt Excel att göra det!

Eliminera dessa irriterande varningsmeddelanden

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

Excel 2016 VBA-hastighetstips

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

Det hemliga tricket för att undvika dessa varningsmeddelanden är att infoga följande VBA-uttalande i ditt makro:

Application.DisplayAlerts = False

Excel kör standardoperationen för dessa typer av meddelanden. Vid radering av ett ark är standardåtgärden Ta bort. Om du inte är säker på vad standardåtgärden ä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 aktivera varningarna igen innan proceduren avslutas, använd detta uttalande:

Application.DisplayAlerts = Sant

Förenkla objektreferenser

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

Arbetsböcker(“MyBook.xlsx”).Arbetsblad(“Sheet1”) _
  .Range(“Räntesats”)

Om ditt makro ofta använder detta intervall, kanske du vill skapa en objektvariabel genom att använda kommandot Set. Till exempel tilldelar följande sats detta Range-objekt till en objektvariabel med namnet Rate:

Set Rate = Workbooks(“MyBook.xlsx”) _
  .Worksheets(“Sheet1”).Range(“Räntesats”)

Efter att ha definierat denna objektvariabel kan du använda variabeln Rate snarare än den långa referensen. Du kan till exempel ändra värdet på cellen som heter InterestRate:

Rate.Value = 0,085

Detta är mycket lättare att skriva än följande påstående:

Arbetsböcker(“MyBook.xlsx”).Arbetsblad(“Sheet1”). _
  Range(“Räntesats”) = .085

Förutom att förenkla din kodning, snabbar du upp dina makron avsevärt genom att använda objektvariabler.

Deklarera variabeltyper

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. Till exempel, om du har en variabel som heter MyVar, kan du tilldela ett nummer 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 procedurer ska köras så snabbt som möjligt, berätta för Excel vilken typ av data som kommer att tilldelas var och en av dina variabler. Detta är känt som att deklarera en variabels typ.

I allmänhet bör du använda den datatyp som kräver det minsta antalet byte men ändå kan hantera all data som tilldelats den. När VBA arbetar med data beror exekveringshastigheten på antalet byte VBA har till sitt förfogande. Med andra ord, ju färre byte data använder, desto snabbare kan VBA komma åt och manipulera data. Ett undantag från detta är datatypen heltal. Om hastigheten är kritisk, använd datatypen Lång istället.

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

Dimhastighet som intervall
Set Rate = Workbooks(“MyBook.xlsx”) _
  .Worksheets(“Sheet1”).Range(“Räntesats”)

Använda With-End With-strukturen

Behöver du ställa in 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 With-End With:

Selection.Horizontal Alignment = xlCenter
Selection.VerticalAlignment = xlCenter
Selection.WrapText = Sant
Urval. Orientering = 0
Selection.ShrinkToFit = Falskt
Selection.MergeCells = False

Här är samma kod, omskriven för att använda With-End With:

Med urval
  .HorizontalAlignment = xlCenter
  .VerticalAlignment = xlCenter
  .WrapText = Sant
  .Orientering = 0
  .ShrinkToFit = Falskt
  .MergeCells = Falskt
Sluta med

När du använder With-End With, se till att varje påstående börjar med en prick.

Leave a Comment

Hur man använder kommandona Gör om och upprepa i Word 2016

Hur man använder kommandona Gör om och upprepa i Word 2016

Lär dig att använda kommandona Gör om och Upprepa i Word 2016 för att effektivt hantera dina dokument. Dessa funktioner hjälper dig att enkelt ångra och återställa ändringar.

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows Microsoft Word öppnar filer i skrivskyddat läge, vilket gör det omöjligt att redigera dem? Oroa dig inte, metoderna finns nedan

Hur man åtgärdar felaktig utskrift av Microsoft Word-dokument

Hur man åtgärdar felaktig utskrift av Microsoft Word-dokument

Så här åtgärdar du fel vid utskrift av felaktiga Microsoft Word-dokument Fel vid utskrift av Word-dokument med ändrade teckensnitt, röriga stycken, saknad text eller förlorat innehåll är ganska vanligt. Men gör det inte

Radera ritningar med penna och överstrykningspenna på dina PowerPoint-bilder

Radera ritningar med penna och överstrykningspenna på dina PowerPoint-bilder

Om du har använt pennan eller överstrykningspennan för att rita på dina PowerPoint-bilder under en presentation, kan du spara ritningarna till nästa presentation eller radera dem så att nästa gång du visar den börjar du med rena PowerPoint-bilder. Följ dessa instruktioner för att radera ritningar med penna och överstrykningspenna: Radera linjer ett på […]

Stilbiblioteksinnehåll i SharePoint 2010

Stilbiblioteksinnehåll i SharePoint 2010

Stilbiblioteket innehåller CSS-filer, XSL-filer (Extensible Stylesheet Language) och bilder som används av fördefinierade mallsidor, sidlayouter och kontroller i SharePoint 2010. För att hitta CSS-filer i stilbiblioteket på en publiceringswebbplats: Välj Webbplatsåtgärder→Visa Allt webbplatsinnehåll. Innehållet på webbplatsen visas. Style-biblioteket ligger i […]

Formatera siffror i tusentals och miljoner i Excel-rapporter

Formatera siffror i tusentals och miljoner i Excel-rapporter

Överväldiga inte din publik med gigantiska siffror. I Microsoft Excel kan du förbättra läsbarheten för dina instrumentpaneler och rapporter genom att formatera dina siffror så att de visas i tusentals eller miljoner.

Hur man delar och följer SharePoint-webbplatser

Hur man delar och följer SharePoint-webbplatser

Lär dig hur du använder SharePoints sociala nätverksverktyg som låter individer och grupper kommunicera, samarbeta, dela och ansluta.

Hur man konverterar datum till Julian-format i Excel

Hur man konverterar datum till Julian-format i Excel

Julianska datum används ofta i tillverkningsmiljöer som en tidsstämpel och snabbreferens för ett batchnummer. Denna typ av datumkodning tillåter återförsäljare, konsumenter och serviceagenter att identifiera när en produkt tillverkades och därmed produktens ålder. Julianska datum används också i programmering, militären och astronomi. Annorlunda […]

Hur man skapar en Access Web App

Hur man skapar en Access Web App

Du kan skapa en webbapp i Access 2016. Så vad är en webbapp egentligen? Tja, webben betyder att den är online, och appen är bara en förkortning för "applikation". En anpassad webbapp är en onlinedatabasapplikation som nås från molnet med en webbläsare. Du bygger och underhåller webbappen i skrivbordsversionen […]

Snabbstartsfält i SharePoint 2010

Snabbstartsfält i SharePoint 2010

De flesta sidor i SharePoint 2010 visar en lista med navigeringslänkar i snabbstartsfältet till vänster på sidan. Snabbstartsfältet visar länkar till utvalt webbplatsinnehåll som listor, bibliotek, webbplatser och publiceringssidor. Snabbstartsfältet innehåller två mycket viktiga länkar: Länken Allt webbplatsinnehåll: […]