Excel 2016 VBA hastighedstips

VBA til Excel 2016 er hurtig, men den er ikke altid hurtig nok. (Computerprogrammer er aldrig hurtige nok.) Fortsæt med at læse for at finde nogle programmeringseksempler, du kan bruge til at fremskynde dine makroer.

Slår skærmopdatering fra

Når du udfører en makro, kan du læne dig tilbage og se al den handling på skærmen, der sker i makroen. Selvom det kan være lærerigt at gøre dette, efter at du har fået makroen til at fungere korrekt, er det ofte irriterende og kan bremse ydeevnen af ​​din makro betydeligt. Heldigvis kan du deaktivere den skærmopdatering, der normalt sker, når du udfører en makro. For at deaktivere skærmopdatering skal du bruge følgende erklæring:

Application.ScreenUpdating = Falsk

Hvis du ønsker, at brugeren skal se, hvad der sker på et hvilket som helst tidspunkt under makroen, skal du bruge følgende erklæring til at slå skærmopdatering til igen:

Application.ScreenUpdating = Sand

For at demonstrere forskellen i hastighed skal du udføre denne simple makro, som udfylder et område med tal:

Sub FillRange()
  Dim r som lang, c så lang
  Dim nummer så langt
  Tal = 0
  For r = 1 til 50
    For c = 1 til 50
      Tal = Tal + 1
      Celler(r, c). Vælg
      Celler(r, c).Værdi = Antal
    Næste c
  Næste r
Slut Sub

Du ser, at hver celle bliver valgt, og værdien indtastes i cellerne. Indsæt nu følgende sætning i begyndelsen af ​​proceduren og udfør den igen:

Application.ScreenUpdating = Falsk

Området udfyldes meget hurtigere, og du ser ikke resultatet før makroen er færdig med at køre og skærmopdatering er (automatisk) sat til True.

Når du fejlfinder kode, slutter programkørsel nogle gange et sted i midten, uden at du har slået skærmopdatering til igen. Dette får nogle gange Excel's programvindue til at blive fuldstændig uresponsive. Vejen ud af denne frosne tilstand er enkel: Gå tilbage til VBE, og udfør følgende sætning i vinduet Umiddelbart:

Application.ScreenUpdating = Sand

Deaktivering af automatisk beregning

Hvis du har et regneark med mange komplekse formler, kan du opleve, at du kan fremskynde tingene betydeligt ved at indstille beregningstilstanden til manuel, mens din makro udføres. Når makroen er færdig, skal du indstille beregningstilstanden tilbage til automatisk.

Følgende erklæring indstiller Excel-beregningstilstanden til manuel:

Application.Calculation = xlCalculationManual

Udfør den næste sætning for at indstille beregningstilstanden til automatisk:

Application.Calculation = xlCalculationAutomatic

Hvis din kode bruger celler med formelresultater, betyder det at slå beregning fra, at cellerne ikke bliver genberegnet, medmindre du udtrykkeligt beder Excel om at gøre det!

Fjernelse af disse irriterende advarselsmeddelelser

Som du ved, kan en makro automatisk udføre en række handlinger. I mange tilfælde kan du starte en makro og så hænge ud i pauserummet, mens Excel gør sit. Nogle Excel-handlinger viser dog meddelelser, der kræver et menneskeligt svar. Disse typer meddelelser betyder, at du ikke kan efterlade Excel uden opsyn, mens den udfører din makro - medmindre du kender det hemmelige trick.

Excel 2016 VBA hastighedstips

Du kan instruere Excel til ikke at vise disse typer advarsler, mens du kører en makro.

Det hemmelige trick til at undgå disse advarselsmeddelelser er at indsætte følgende VBA-sætning i din makro:

Application.DisplayAlerts = Falsk

Excel udfører standardhandlingen for disse typer meddelelser. I tilfælde af sletning af et ark er standardhandlingen Slet. Hvis du ikke er sikker på, hvad standardhandlingen er, skal du udføre en test for at se, hvad der sker.

Når proceduren afsluttes, nulstiller Excel automatisk egenskaben DisplayAlerts til True. Hvis du har brug for at slå advarslerne til igen, før proceduren slutter, skal du bruge denne erklæring:

Application.DisplayAlerts = Sand

Forenkling af objektreferencer

Som du sikkert allerede ved, kan referencer til objekter blive meget lange. For eksempel kan en fuldt kvalificeret reference til et Range-objekt se sådan ud:

Workbooks(“MyBook.xlsx”).Worksheets(“Sheet1”) _
  .Range(“Rente”)

Hvis din makro ofte bruger dette område, vil du måske oprette en objektvariabel ved at bruge kommandoen Set. For eksempel tildeler følgende sætning dette Range-objekt til en objektvariabel ved navn Rate:

Set Rate = Workbooks(“MyBook.xlsx”) _
  .Worksheets(“Sheet1”).Range(“Rente”)

Efter at have defineret denne objektvariabel, kan du bruge variablen Rate i stedet for den lange reference. For eksempel kan du ændre værdien af ​​cellen med navnet RenteRate:

Sats.Værdi = 0,085

Dette er meget nemmere at skrive end følgende udsagn:

Arbejdsbøger ("MyBook.xlsx"). Arbejdsark ("Ark1"). _
  Range(“Rente”) = .085

Ud over at forenkle din kodning, fremskynder brugen af ​​objektvariable dine makroer betydeligt.

Erklæring af variabeltyper

Du behøver normalt ikke bekymre dig om den type data, du tildeler en variabel. Excel håndterer alle detaljerne for dig bag kulisserne. For eksempel, hvis du har en variabel ved navn MyVar, kan du tildele et nummer af enhver type til den variabel. Du kan endda tildele en tekststreng til den senere i proceduren.

Hvis du ønsker, at dine procedurer skal udføres så hurtigt som muligt, skal du fortælle Excel, hvilken type data der vil blive tildelt hver af dine variabler. Dette er kendt som at erklære en variabels type.

Generelt bør du bruge den datatype, der kræver det mindste antal bytes, men stadig kan håndtere alle de data, der er tildelt den. Når VBA arbejder med data, afhænger eksekveringshastigheden af ​​antallet af bytes VBA har til rådighed. Med andre ord, jo færre bytes data bruger, jo hurtigere kan VBA få adgang til og manipulere dataene. En undtagelse fra dette er datatypen heltal. Hvis hastigheden er kritisk, skal du bruge datatypen Lang i stedet.

Hvis du bruger en objektvariabel, kan du erklære variablen som en bestemt objekttype. Her er et eksempel:

Dæmp rate som rækkevidde
Set Rate = Workbooks(“MyBook.xlsx”) _
  .Worksheets(“Sheet1”).Range(“Rente”)

Brug af With-End With-strukturen

Skal du indstille et antal egenskaber for et objekt? Din kode kører hurtigere, hvis du bruger With-End With-strukturen. En yderligere fordel er, at din kode kan være lettere at læse.

Følgende kode bruger ikke With-End With:

Selection.Horizontal Alignment = xlCenter
Selection.VerticalAlignment = xlCenter
Selection.WrapText = Sand
Selection.Orientation = 0
Selection.ShrinkToFit = Falsk
Selection.MergeCells = Falsk

Her er den samme kode, omskrevet til at bruge With-End With:

Med Udvalg
  .Horizontal Alignment = xlCenter
  .VerticalAlignment = xlCenter
  .WrapText = Sand
  .Orientering = 0
  .ShrinkToFit = Falsk
  .MergeCells = Falsk
Slut med

Når du bruger With-End With, skal du sørge for, at hver sætning begynder med en prik.


Sådan blokerer du Microsoft Word fra at åbne filer i skrivebeskyttet tilstand på Windows

Sådan blokerer du Microsoft Word fra at åbne filer i skrivebeskyttet tilstand på Windows

Sådan blokerer du Microsoft Word fra at åbne filer i skrivebeskyttet tilstand på Windows Microsoft Word åbner filer i skrivebeskyttet tilstand, hvilket gør det umuligt at redigere det? Bare rolig, metoderne er nedenfor

Sådan rettes forkert udskrivning af Microsoft Word-dokumenter

Sådan rettes forkert udskrivning af Microsoft Word-dokumenter

Sådan rettes fejl ved udskrivning af forkerte Microsoft Word-dokumenter Fejl ved udskrivning af Word-dokumenter med ændrede skrifttyper, rodede afsnit, manglende tekst eller tabt indhold er ret almindelige. Men lad være

Slet pen- og highlighter-tegninger på dine PowerPoint-dias

Slet pen- og highlighter-tegninger på dine PowerPoint-dias

Hvis du har brugt pennen eller highlighteren til at tegne på dine PowerPoint-dias under en præsentation, kan du gemme tegningerne til næste præsentation eller slette dem, så næste gang du viser den, starter du med rene PowerPoint-dias. Følg disse instruktioner for at slette pen- og highlighter-tegninger: Sletning af linjer en ved […]

Indhold af stilbibliotek i SharePoint 2010

Indhold af stilbibliotek i SharePoint 2010

Style-biblioteket indeholder CSS-filer, Extensible Stylesheet Language-filer (XSL) og billeder, der bruges af foruddefinerede mastersider, sidelayouts og kontrolelementer i SharePoint 2010. For at finde CSS-filer i Style-biblioteket på et udgivelsessted: Vælg Site Actions→ View Alt webstedsindhold. Indholdet af webstedet vises. Style-biblioteket ligger i […]

Formater tal i tusinder og millioner i Excel-rapporter

Formater tal i tusinder og millioner i Excel-rapporter

Overvæld ikke dit publikum med gigantiske tal. I Microsoft Excel kan du forbedre læsbarheden af ​​dine dashboards og rapporter ved at formatere dine tal, så de vises i tusinder eller millioner.

Sådan deler og følger du SharePoint-websteder

Sådan deler og følger du SharePoint-websteder

Lær, hvordan du bruger SharePoints sociale netværksværktøjer, der lader enkeltpersoner og grupper kommunikere, samarbejde, dele og forbinde.

Sådan konverteres datoer til julianske formater i Excel

Sådan konverteres datoer til julianske formater i Excel

Julianske datoer bruges ofte i produktionsmiljøer som et tidsstempel og hurtig reference for et batchnummer. Denne type datokodning giver detailhandlere, forbrugere og serviceagenter mulighed for at identificere, hvornår et produkt blev fremstillet, og dermed produktets alder. Julianske datoer bruges også i programmering, militæret og astronomi. Forskellige […]

Sådan opretter du en Access Web App

Sådan opretter du en Access Web App

Du kan oprette en webapp i Access 2016. Så hvad er en webapp overhovedet? Nå, web betyder, at det er online, og app er kun en forkortelse for "applikation". En Custom Web App er en online databaseapplikation, der tilgås fra skyen ved hjælp af en browser. Du bygger og vedligeholder webappen i desktopversionen […]

Hurtig startlinje i SharePoint 2010

Hurtig startlinje i SharePoint 2010

De fleste sider i SharePoint 2010 viser en liste over navigationslinks på linjen Hurtig start langs venstre side af siden. Hurtig startlinjen viser links til fremhævet webstedsindhold såsom lister, biblioteker, websteder og udgivelsessider. Hurtigstartlinjen indeholder to meget vigtige links: Linket Alt webstedsindhold: […]

Hvad betyder Solver-fejlmeddelelserne i Excel?

Hvad betyder Solver-fejlmeddelelserne i Excel?

Ved simple problemer finder Solver i Excel som regel hurtigt de optimale Solver-variableværdier for objektivfunktionen. Men i nogle tilfælde har Solver problemer med at finde de Solver-variableværdier, der optimerer objektivfunktionen. I disse tilfælde viser Solver typisk en meddelelse eller en fejlmeddelelse, der beskriver eller diskuterer det problem, der […]