Virheiden käsittely Excel VBA: ssa - Easy Excel -makrot

Sisällysluettelo

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 numeroiden neliöjuuren.

Neliöjuuri 1

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

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

Dim rng as Range, solu As Range

2. Alustamme Range -objektin rng valitulla alueella.

Aseta rng = 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:

Jokaista solua kohti
Seuraava solu

Huomautus: rng ja solu valitaan satunnaisesti täällä, 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ää Sqr -toimintoa tähän. Lisää silmukkaan seuraava koodirivi.

cell.Value = Sqr (cell.Value)

6. Sulje Visual Basic Editor ja testaa ohjelma.

Tulos:

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 GoTo InvalidValue:

Huomautus: InvalidValue on valittu satunnaisesti täällä, 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:

Arvo ei ole sopiva:

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" & cell.Address

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

Jatka seuraavaksi

6. Sulje Visual Basic Editor ja testaa ohjelma.

Tulos:

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

wave wave wave wave wave