Hibakezelés az Excel VBA programban - Egyszerű Excel makrók

Tartalomjegyzék

Az alábbiakban két programot tekintünk meg Excel VBA. Egy program egyszerűen figyelmen kívül hagyja a hibákat. A másik program folytatja a végrehajtást egy meghatározott sorban hiba ütésekor.

Helyzet:

Mindkét program kiszámítja a számok négyzetgyökét.

Négyzetgyök 1

Adja hozzá a következő kódsorokat a 'Square Root 1' parancsgombhoz.

1. Először két Range objektumot deklarálunk. A Range objektumokat rng -nek és cellának hívjuk.

Dim rng As Range, cell As Range

2. Inicializáljuk a Range objektum rng -t a kiválasztott tartományt.

Set rng = Kiválasztás

3. Egy véletlenszerűen kiválasztott tartományban szeretnénk kiszámítani az egyes cellák négyzetgyökét (ez a tartomány bármilyen méretű lehet). Az Excel VBA -ban erre használhatja a Minden egyes következő cikket. Adja hozzá a következő kódsorokat:

Minden cellához In rng
Következő cella

Megjegyzés: az rng és a cellát véletlenszerűen választjuk ki, bármilyen nevet használhat. Ne felejtse el hivatkozni ezekre a nevekre a kód többi részében.

4. Adja hozzá a következő kód sort a hurokhoz.

Hiba esetén Folytassa a következőt

5. Ezután kiszámítjuk az érték négyzetgyökét. Az Excel VBA -ban erre használhatjuk az Sqr függvényt. Adja hozzá a következő kód sort a hurokhoz.

cell.Value = Sqr (cell.Value)

6. Lépjen ki a Visual Basic Editorból, és tesztelje a programot.

Eredmény:

Következtetés: Az Excel VBA figyelmen kívül hagyta az érvénytelen értékeket, például negatív számokat és szöveget tartalmazó cellákat. Az 'On Error Resume Next' utasítás használata nélkül két hibát kap. Ügyeljen arra, hogy az „On Error Resume Next” (On Error Resume Next) utasítást csak akkor használja, ha biztos benne, hogy a hibák figyelmen kívül hagyása rendben van.

Négyzetgyök 2

Adja hozzá a következő kódsorokat a 'Square Root 2' parancsgombhoz.

1. Ugyanaz a program, mint a Square Root 1 -nél, de az „On Error Resume Next” helyére a következőt kell cserélni:

GoTo InvalidValue hiba esetén:

Megjegyzés: Az InvalidValue itt véletlenszerűen van kiválasztva, bármilyen nevet használhat. Ne felejtse el hivatkozni erre a névre a kód többi részében.

2. A Minden egyes következő cikluson kívül először adja hozzá a következő kód sort:

Kilépés a Subból

E sor nélkül a kód többi része (hibakód) végrehajtásra kerül, még akkor is, ha nincs hiba!

3. Az Excel VBA folytatja a végrehajtást az 'InvalidValue:' kezdetű sorban, amikor hibaüzenetet talál (ne felejtse el a kettőspontot). Adja hozzá a következő kód sort:

Helytelen érték:

4. Egyelőre egyszerűnek tartjuk a hibakódunkat. Megjelenítünk egy MsgBox -ot néhány szöveggel és annak a cellának a címével, ahol a hiba történt.

Az MsgBox "nem tudja kiszámítani a négyzetgyököt a cellában" & cell.Address

5. Adja hozzá a következő sort, hogy utasítsa az Excel VBA -t, hogy folytassa a végrehajtást a hibakód végrehajtása után.

Folytatás Következő

6. Lépjen ki a Visual Basic Editorból, és tesztelje a programot.

Eredmény:

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave