VBA Laske - nyt, työkirja, laskentataulukko tai alue

Tämä opetusohjelma opettaa sinulle kaikki eri laskentavaihtoehdot VBA: ssa.

Oletusarvoisesti Excel laskee kaikki avoimet työkirjat aina, kun työkirjan muutos tehdään. Se tekee tämän seuraamalla laskentapuuta, jossa jos solua A1 muutetaan, se päivittää kaikki solut, jotka tukeutuvat soluun A1 ja niin edelleen. Tämä voi kuitenkin aiheuttaa VBA -koodin suorittamisen erittäin hitaasti, kuten aina, kun solu muuttuu, Excelin on laskettava uudelleen.

Jos haluat lisätä VBA -nopeuttasi, haluat usein poistaa automaattiset laskelmat käytöstä toimenpiteiden alussa:

1 Application.Calculation = xlManual

ja ota se uudelleen käyttöön lopussa:

1 Application.Calculation = xlAutomatic

Entä jos haluat laskea kaikki (tai osan) työkirjoistasi menettelyn sisällä? Loput tästä opetusohjelmasta opettavat sinulle, mitä tehdä.

Laske nyt

Voit laskea kaiken uudelleen (kaikissa avoimissa työkirjoissa) Laske-komennolla:

1 Laskea

Tämä on yleensä paras tapa käyttää. Voit kuitenkin tehdä kapeampia laskelmia nopeuden parantamiseksi.

Laske vain arkki

Voit myös pyytää VBA: ta laskemaan vain tietyn taulukon.

Tämä koodi laskee aktiivisen taulukon uudelleen:

1 ActiveSheet.Laske

Tämä koodi laskee taulukon 1 uudelleen:

1 Sheets ("Sheet1"). Laske

Laske alue

Jos tarvitset kapeamman laskennan, voit pyytää VBA: ta laskemaan vain solualueen:

1 Sheets ("Sheet1"). Alue ("a1: a10"). Laske

Laske yksittäinen kaava

Tämä koodi laskee vain yksittäisen solukaavan:

1 Alue ("a1"). Laske

Laske työkirja

Ei ole VBA -vaihtoehtoa laskea vain koko työkirja. Jos sinun on laskettava koko työkirja, paras vaihtoehto on käyttää Laske -komentoa:

1 Laskea

Tämä laskee kaikki avoimet työkirjat. Jos olet todella huolissasi nopeudesta ja haluat laskea koko työkirjan, saatat pystyä olemaan valikoivampi siitä, mitkä työkirjat ovat avoinna kerralla.

Laske työkirja - menetelmät, jotka eivät toimi

On olemassa muutamia menetelmiä, joita saatat houkutella käyttämään pakottamaan VBA: n laskemaan vain työkirjan, mutta mikään niistä ei toimi kunnolla.

Tämä koodi kiertää työkirjan jokaisen laskentataulukon läpi ja laskee taulukot uudelleen yksi kerrallaan:

1234567 Alalaskenta_työkirja ()Dim ws laskentataulukkonaJokaiselle viikolle laskentataulukoissaws. LaskeSeuraava wsEnd Sub

Tämä koodi toimii hyvin, jos kaikki laskentataulukot ovat "itsenäisiä", eli mikään arkeistasi ei sisällä laskelmia, jotka viittaavat muihin arkeihin.

Jos laskentataulukosi viittaavat muihin arkeihin, laskelmasi eivät ehkä päivity kunnolla. Jos esimerkiksi lasket Sheet1 ennen Sheet2, mutta Sheet1: n kaavat perustuvat Sheet2: ssa tehtyihin laskelmiin, kaavat eivät sisällä uusimpia arvoja.

Voit myös yrittää valita kaikki taulukot kerralla ja laskea aktiivisen taulukon:

12 ThisWorkbook.Sheets.SelectActiveSheet.Laske

Tämä aiheuttaa kuitenkin saman ongelman.

Tulet auttaa kehittämään sivuston jakaminen sivu ystävillesi

wave wave wave wave wave