VBA arvutus - nüüd, töövihik, tööleht või vahemik

See õpetus õpetab teile kõiki VBA arvutusvalikuid.

Vaikimisi arvutab Excel kõik avatud töövihikud iga kord, kui töövihikut muudetakse. Ta teeb seda, järgides arvutuspuud, kus lahtri A1 muutmisel värskendatakse kõiki lahtreid A1 ja nii edasi tuginevaid lahtreid. See võib aga põhjustada teie VBA -koodi töötamise äärmiselt aeglaselt, nagu iga lahtri muutmisel, peab Excel uuesti arvutama.

VBA kiiruse suurendamiseks soovite sageli oma protseduuride alguses automaatsed arvutused keelata.

1 Application.Calculation = xlManual

ja lubage see lõpus uuesti:

1 Rakendus.Kalkulatsioon = xlAutomaatne

Aga mis siis, kui soovite oma protseduuri raames arvutada kõik (või osa) oma töövihikutest? Selle õpetuse ülejäänud osa õpetab teile, mida teha.

Arvutage kohe

Kõigi (kõikides avatud töövihikutes) uuesti arvutamiseks saate kasutada käsku Arvuta.

1 Arvutama

Tavaliselt on see parim viis kasutada. Kiiruse parandamiseks saate siiski teha ka kitsamaid arvutusi.

Arvuta ainult leht

Samuti võite öelda, et VBA arvutab ainult konkreetse lehe.

See kood arvutab aktiivse lehe uuesti:

1 ActiveSheet. Arvutage

See kood arvutab lehe 1 ümber:

1 Arvutustabelid ("Leht1")

Arvutage vahemik

Kui vajate kitsamat arvutust, võite käskida VBA -l arvutada ainult lahtrite vahemik.

1 Arvutustabelid ("leht 1"). Vahemik ("a1: a10"). Arvutage

Arvutage individuaalne valem

See kood arvutab ainult üksiku lahtri valemi:

1 Vahemik ("a1"). Arvutage

Arvuta töövihik

Puudub VBA võimalus arvutada ainult kogu töövihik. Kui peate arvutama kogu töövihiku, on parim võimalus kasutada käsku Arvuta:

1 Arvutama

See arvutab kõik avatud töövihikud. Kui olete tõesti mures kiiruse pärast ja soovite arvutada kogu töövihiku, võite olla valivam, millised töövihikud on korraga avatud.

Arvutage töövihik - meetodid, mis ei tööta

On paar meetodit, mida võiksite kiusata kasutada, et sundida VBA -d arvutama ainult töövihikut, kuid ükski neist ei tööta korralikult.

See kood vaatab läbi töövihiku iga töölehe ja arvutab lehed ükshaaval ümber:

1234567 Alamarvestus_ töövihik ()Dim ws töölehenaIga ws töölehtedelws. ArvutageJärgmine wsEnd Sub

See kood töötab hästi, kui kõik teie töölehed on iseseisvad, mis tähendab, et ükski leht ei sisalda arvutusi, mis viitavad teistele lehtedele.

Kui aga teie töölehed viitavad teistele lehtedele, ei pruugi teie arvutused korralikult uueneda. Näiteks kui arvutate Sheet1 enne Sheet2, kuid Sheet1 valemid toetuvad Sheet2-s tehtud arvutustele, ei sisalda teie valemid kõige värskemaid väärtusi.

Samuti võite proovida valida kõik lehed korraga ja arvutada aktiivlehe:

12 ThisWorkbook.Sheets.SelectActiveSheet. Arvutage

See põhjustab aga sama probleemi.

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave