/ / Excel VBA-applikationsobjekt

Excel VBA-applikationsobjekt

WorksheetFunction | ScreenUpdating | DisplayAlerts | Beräkning

Moderen till alla föremål är själva Excel. Vi kallar det Applikationsobjekt. Applikationsobjektet ger tillgång till många Excel-relaterade alternativ.

WorksheetFunction

Du kan använda egenskapen WorksheetFunction i Excel VBA för att komma åt Excel-funktionerna.

1. Lägg till exempel en kommandoknapp på ditt kalkylblad och lägg till följande kodrad:

Range("A3").Value = Application.WorksheetFunction.Average(Range("A1:A2"))

När du klickar på kommandoknappen på kalkylbladet beräknar Excel VBA medelvärdet av värdena i cell A1 och cell A2 och placerar resultatet i cell A3.

ArbetsbladFunktion i Excel VBA

Obs: istället för Application.WorksheetFunction.Genomsnitt, använd helt enkelt WorksheetFunction.Average. Om du tittar på formulärfältet kan du se att själva formuläret inte är införd i cell A3. För att infoga formeln själv i cell A3, använd följande kodlinje:

Range("A3").Value = "=AVERAGE(A1:A2)"

ScreenUpdating

Ibland kan det vara bra att avaktivera skärmuppdatering (för att undvika flimmer) medan du kör kod. Som ett resultat kommer din kod att köras snabbare.

1. Lägg till exempel en kommandoknapp på ditt arbetsblad och lägg till följande kodlinjer:

Dim i As Integer

For i = 1 To 10000
    Range("A1").Value = i
Next i

När du klickar på kommandoknappen på kalkylbladet visar Excel VBA varje värde en liten bråkdel av en sekund och det kan ta lite tid.

ScreenUpdating

2. För att påskynda processen, uppdatera koden enligt följande.

Dim i As Integer

Application.ScreenUpdating = False

For i = 1 To 10000
    Range("A1").Value = i
Next i

Application.ScreenUpdating = True

Som ett resultat kommer din kod att springa mycket snabbare och du kommer bara se slutresultatet (10000).

DisplayAlerts

Du kan instruera Excel VBA att inte visa varningar när du kör kod.

1. Lägg till exempel en kommandoknapp på ditt kalkylblad och lägg till följande kodrad:

ActiveWorkbook.Close

När du klickar på kommandoknappen på kalkylbladet stänger Excel VBA din Excel-fil och ber dig spara de ändringar du gjort.

DisplayAlerts

2. För att instruera Excel VBA att inte visa den här varningen när du kör kod, uppdatera koden enligt följande.

Application.DisplayAlerts = False

ActiveWorkbook.Close

Application.DisplayAlerts = True

Som ett resultat stänger Excel VBA din Excel-fil utan att fråga dig att spara de ändringar du gjort. Eventuella förändringar går vilse.

Beräkning

Som standard är beräkningen inställd på automatisk. Därför räknar Excel om automatiskt arbetsboken varje gång ett värde som påverkar en formeländring. Om din arbetsbok innehåller många komplexa formler kan du påskynda ditt makro genom att ställa in beräkning till manuell.

1. Lägg till exempel en kommandoknapp på ditt kalkylblad och lägg till följande kodrad:

Application.Calculation = xlCalculationManual

När du klickar på kommandoknappen på kalkylbladet anger Excel VBA beräkning till manuell.

2. Du kan verifiera detta genom att klicka på Arkiv, Alternativ, Formler.

Beräkningsalternativ

3. Nu när du ändrar värdet för cell A1, räknas inte värdet av cell B1 om.

Manuell beräkning

Du kan manuellt omberäkna arbetsboken genom att trycka på F9.

4. I de flesta situationer ställer du in beräkningen till automatisk igen i slutet av koden. Lägg bara till följande kodrad för att uppnå detta.

Application.Calculation = xlCalculationAutomatic
Läs också: