Vigade käsitlemine Excelis VBA - lihtsad Exceli makrod

Lang L: none (table-of-contents)

Allpool vaatleme kahte programmi Exceli VBA. Üks programm lihtsalt eirab vigu. Teine programm jätkab täitmist määratud real vea tabamisel.

Olukord:

Mõlemad programmid arvutavad numbrite ruutjuure.

Ruutjuur 1

Lisage käsureale 'Square Root 1' järgmised koodiridad.

1. Esiteks deklareerime kaks vahemiku objekti. Me nimetame vahemiku objekte rng ja cell.

Dim rng As Range, lahter As Range

2. Initsialiseerime valitud vahemikuga objekti Range rng.

Set rng = Valik

3. Tahame arvutada iga lahtri ruutjuure juhuslikult valitud vahemikus (see vahemik võib olla igas suuruses). Excel VBA -s saate selle jaoks kasutada iga järgmise silmuse jaoks. Lisage järgmised koodiridad:

Iga lahtri jaoks rng
Järgmine lahter

Märkus: rng ja cell valitakse siin juhuslikult, võite kasutada mis tahes nimesid. Ärge unustage viidata neile koodidele ülejäänud koodides.

4. Lisage silmusesse järgmine koodirida.

Vea korral Jätka järgmist

5. Järgmisena arvutame väärtuse ruutjuure. Excel VBA -s saame selleks kasutada funktsiooni Sqr. Lisage silmusesse järgmine koodirida.

cell.Value = Sqr (cell.Value)

6. Väljuge Visual Basic Editorist ja testige programmi.

Tulemus:

Järeldus: Excel VBA on ignoreerinud lahtreid, mis sisaldavad kehtetuid väärtusi, nagu negatiivsed numbrid ja tekst. Ilma lauset „On Error Resume Next” kasutamata saate kaks viga. Olge ettevaatlik, kui kasutate lauset „On Error Resume Next” (Tõrke korral jätka järgmine), kui olete kindel, et vigade ignoreerimine on OK.

Ruutjuur 2

Lisage käsureale 'Square Root 2' järgmised koodiridad.

1. Sama programm nagu Square Root 1, kuid asendage „On Error Resume Next” järgmisega:

Viga GoTo InvalidValue:

Märkus: InvalidValue valitakse siin juhuslikult, võite kasutada mis tahes nime. Ärge unustage viidata sellele nimele ülejäänud koodis.

2. Väljaspool iga järgmise silmuse jaoks lisage esmalt järgmine koodirida:

Välju sub

Ilma selle reata täidetakse ülejäänud kood (veakood), isegi kui viga pole!

3. Excel VBA jätkab täitmist vea tabamisel real "InvalidValue:" algaval real (ärge unustage koolonit). Lisage järgmine koodirida:

Vigane väärtus:

4. Hoiame oma veakoodi praegu lihtsana. Kuvame MsgBoxi koos mõne tekstiga ja selle lahtri aadressiga, kus viga ilmnes.

MsgBox "ei saa lahtris ruutjuurt arvutada" & cell.Address

5. Lisage järgmine rida, et juhendada Excel VBA -d pärast veakoodi täitmist jätkama täitmist.

Jätka edasi

6. Väljuge Visual Basic Editorist ja testige programmi.

Tulemus:

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave