VBA Beregn - Nu, projektmappe, regneark eller område

Denne vejledning lærer dig alle de forskellige beregningsmuligheder i VBA.

Som standard beregner Excel alle åbne projektmapper, hver gang der ændres en projektmappe. Det gør det ved at følge et beregningstræ, hvor hvis celle A1 ændres, opdaterer den alle celler, der er afhængige af celle A1 og så videre. Dette kan dog få din VBA -kode til at køre ekstremt langsomt, som hver gang en celle ændres, skal Excel beregne igen.

For at øge din VBA -hastighed vil du ofte deaktivere automatiske beregninger i begyndelsen af ​​dine procedurer:

1 Application.Calculation = xlManual

og genaktiver det i slutningen:

1 Beregning = xlAutomatisk

Men hvad nu hvis du vil beregne alle (eller dele) af dine projektmapper inden for din procedure? Resten af ​​denne vejledning lærer dig, hvad du skal gøre.

Beregn nu

Du kan bruge kommandoen Beregn til at genberegne alt (i alle åbne projektmapper):

1 Beregn

Dette er normalt den bedste metode at bruge. Du kan dog også udføre mere snævre beregninger for forbedret hastighed.

Beregn kun ark

Du kan også fortælle VBA kun at beregne et bestemt ark.

Denne kode genberegner det aktive ark:

1 ActiveSheet. Beregn

Denne kode genberegner Sheet1:

1 Ark ("Ark1"). Beregn

Beregn rækkevidde

Hvis du har brug for en mere snæver beregning, kan du bede VBA om kun at beregne en række celler:

1 Ark ("Ark1"). Område ("a1: a10"). Beregn

Beregn individuel formel

Denne kode beregner kun en individuel celleformel:

1 Område ("a1"). Beregn

Beregn projektmappe

Der er ingen VBA -mulighed for kun at beregne en hel projektmappe. Hvis du skal beregne en hel projektmappe, er den bedste mulighed at bruge kommandoen Beregn:

1 Beregn

Dette vil beregne alle åbne projektmapper. Hvis du virkelig er bekymret for hastigheden og vil beregne en hel projektmappe, kan du muligvis være mere selektiv om, hvilke projektmapper der er åbne på én gang.

Beregn projektmappe - metoder der ikke virker

Der er et par metoder, du kan blive fristet til at bruge til at tvinge VBA til bare at beregne en projektmappe, men ingen af ​​dem fungerer korrekt.

Denne kode går gennem hvert regneark i projektmappen og genberegner arkene et ad gangen:

1234567 Sub Recalculate_Workbook ()Dim ws Som regnearkFor hver gang i regnearkws.BeregnNæste wsAfslut Sub

Denne kode fungerer fint, hvis alle dine regneark er "selvstændige", hvilket betyder, at ingen af ​​dine ark indeholder beregninger, der refererer til andre ark.

Men hvis dine regneark refererer til andre ark, opdateres dine beregninger muligvis ikke korrekt. For eksempel, hvis du beregner Sheet1 før Sheet2, men Sheet1's formler er afhængige af beregninger udført i Sheet2, så vil dine formler ikke indeholde de mest opdaterede værdier.

Du kan også prøve at vælge alle ark på én gang og beregne det aktive ark:

12 ThisWorkbook.Sheets.SelectActiveSheet. Beregn

Dette vil imidlertid forårsage det samme problem.

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave