VBA aprēķināt - tagad, darbgrāmata, darblapa vai diapazons

Šī apmācība iemācīs jums dažādas VBA aprēķināšanas iespējas.

Pēc noklusējuma programma Excel aprēķina visas atvērtās darbgrāmatas katru reizi, kad tiek mainīta darbgrāmata. Tas tiek darīts, sekojot aprēķinu kokam, kur, mainot šūnu A1, tā atjaunina visas šūnas, kas paļaujas uz šūnu A1 utt. Tomēr tas var izraisīt jūsu VBA koda darbību ārkārtīgi lēni, tāpat kā katru reizi, kad mainās šūna, programmai Excel ir jāveic pārrēķins.

Lai palielinātu VBA ātrumu, procedūru sākumā bieži vēlaties atspējot automātiskos aprēķinus:

1 Lietojumprogramma. Aprēķins = xlManual

un beigās to atkal iespējojiet:

1 Pielietojums. Aprēķins = xl Automātisks

Tomēr, ko darīt, ja procedūras laikā vēlaties aprēķināt visas (vai daļu) darbgrāmatu? Pārējā šīs apmācības daļa iemācīs jums, kā rīkoties.

Aprēķiniet tūlīt

Varat izmantot komandu Aprēķināt, lai visu pārrēķinātu (visās atvērtās darbgrāmatās):

1 Aprēķināt

Parasti šī ir labākā izmantotā metode. Tomēr, lai uzlabotu ātrumu, varat veikt arī šaurākus aprēķinus.

Aprēķināt tikai lapu

Jūs varat arī pateikt VBA aprēķināt tikai noteiktu lapu.

Šis kods pārrēķinās aktīvo lapu:

1 ActiveSheet. Aprēķināt

Šis kods pārrēķinās lapu 1:

1 Izklājlapas ("Sheet1"). Aprēķināt

Aprēķināt diapazonu

Ja jums ir nepieciešams šaurāks aprēķins, varat pateikt VBA aprēķināt tikai šūnu diapazonu:

1 Izklājlapas ("Sheet1"). Diapazons ("a1: a10"). Aprēķināt

Aprēķiniet individuālo formulu

Šis kods aprēķinās tikai atsevišķu šūnu formulu:

1 Diapazons ("a1"). Aprēķiniet

Aprēķināt darbgrāmatu

Nav VBA iespēju aprēķināt tikai visu darbgrāmatu. Ja jums ir jāaprēķina visa darbgrāmata, labākā iespēja ir izmantot komandu Aprēķināt:

1 Aprēķināt

Tādējādi tiks aprēķinātas visas atvērtās darbgrāmatas. Ja jūs patiešām uztrauc ātrums un vēlaties aprēķināt visu darbgrāmatu, iespējams, varēsit būt selektīvāks par to, kuras darbgrāmatas ir atvērtas vienlaikus.

Aprēķiniet darbgrāmatu - metodes, kas nedarbojas

Ir vairākas metodes, kuras jūs varētu izmantot kārdinājums izmantot, lai piespiestu VBA aprēķināt tikai darbgrāmatu, taču neviena no tām nedarbosies pareizi.

Šis kods pārvietos katru darbgrāmatas darblapu un pārrēķinās lapas pa vienam:

1234567 Pārrēķināt_darba grāmatu ()Dim ws kā darblapaPar katru ws darblapāsws. AprēķinātNākamais wsBeigu apakš

Šis kods darbosies labi, ja visas jūsu darblapas ir “autonomas”, kas nozīmē, ka nevienā no jūsu lapām nav aprēķinu, kas attiecas uz citām lapām.

Tomēr, ja jūsu darblapas attiecas uz citām lapām, jūsu aprēķini var netikt pareizi atjaunināti. Piemēram, ja aprēķināt lapu Sheet1 pirms Sheet2, bet Sheet1 formulas balstās uz Sheet2 veiktajiem aprēķiniem, tad formulas nesatur visjaunākās vērtības.

Varat arī mēģināt atlasīt visas lapas vienlaikus un aprēķināt aktīvo lapu:

12 ThisWorkbook.Sheets.SelectActiveSheet. Aprēķināt

Tomēr tas radīs to pašu problēmu.

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave