300 Esimerkkejä

Virhe käsittelyssä

Error Handling

Alla tarkastellaan kahta ohjelmaa Excel VBA . Yksinkertaisesti yksi ohjelma jättää huomiotta virheet . Toinen ohjelma jatkaa suorittamista määrätyllä rivillä virheen osuessa.





Tilanne:

Molemmat ohjelmat laskevat neliöjuuri numeroista.





Virheiden käsittely Excel VBA: ssa

Neliöjuuri 1

Lisää seuraavat koodirivit 'Square Root 1' -komentopainikkeeseen.



1. Ensin julistamme kaksi Range -objektia. Kutsumme alueen kohteita rng ja solu.

Ei mitäänrngKutenAlue, soluKutenAlue

2. Alustamme Range -objektin rng valitulla alueella.

Asetarng = Valinta

3. Haluamme laskea jokaisen solun neliöjuuren satunnaisesti valitulla alueella (tämä alue voi olla minkä kokoinen tahansa). Excel VBA: ssa voit käyttää For For Next Next -silmukkaa tähän. Lisää seuraavat koodirivit:

Varten JokainensoluSisäänrng

Seuraavasolu

Huomautus: rng ja solu valitaan satunnaisesti, voit käyttää mitä tahansa nimiä. Muista viitata näihin nimiin koodin loppuosassa.

4. Lisää silmukkaan seuraava koodirivi.

Virhe Jatka seuraavaksi

5. Seuraavaksi laskemme arvon neliöjuuren. Excel VBA: ssa voimme käyttää tähän Sqr -toimintoa. Lisää silmukkaan seuraava koodirivi.

cell.Value = Sqr (cell.Value)

6. Sulje Visual Basic Editor ja testaa ohjelma.

Tulos:

Virhe Jatka seuraavaa tulosta

Johtopäätös: Excel VBA on jättänyt huomiotta solut, jotka sisältävät virheellisiä arvoja, kuten negatiivisia numeroita ja tekstiä. Ilman 'On Error Resume Next' -lauseketta saat kaksi virhettä. Ole varovainen käyttäessäsi On Error Resume Next -ilmoitusta vain, kun olet varma, että virheiden huomiotta jättäminen on OK.

Neliöjuuri 2

Lisää seuraavat koodirivit 'Square Root 2' -komentopainikkeeseen.

1. Sama ohjelma kuin Square Root 1, mutta korvaa 'On Error Resume Next' seuraavalla:

Virhe GoToKelpaamaton arvo:

Huomautus: InvalidValue on valittu satunnaisesti, voit käyttää mitä tahansa nimeä. Muista viitata tähän nimeen koodin loppuosassa.

2. Lisää jokaisen seuraavan silmukan ulkopuolelle ensin seuraava koodirivi:

Lopeta Sub

Ilman tätä riviä loput koodista (virhekoodi) suoritetaan, vaikka virheitä ei olisi!

3. Excel VBA jatkaa suorittamista rivillä, joka alkaa InvalidValue: -kohdasta virheen osuessa (älä unohda kaksoispistettä). Lisää seuraava koodirivi:

Kelpaamaton arvo:

4. Pidämme virhekoodimme yksinkertaisena toistaiseksi. Näytämme MsgBoxin, jossa on tekstiä ja sen solun osoite, jossa virhe tapahtui.

MsgBox 'ei voi laskea neliöjuuria solussa' ja solussa.Osoite

5. Ohjaa Excel VBA: ta jatkamaan suorittamista virhekoodin suorittamisen jälkeen lisäämällä seuraava rivi.

Jatkaa Seuraava

6. Sulje Visual Basic Editor ja testaa ohjelma.

Tulos:

laskea tuntien välillä kaksi kertaa excel

Virhe GoTo Result

Virhe GoTo Result

Virhe GoTo Result

3/6 valmis! Lisätietoja makrovirheistä>
Siirry seuraavaan lukuun: Jono manipulointi



^