Kļūdu apstrāde programmā Excel VBA - vienkārši Excel makro

Satura rādītājs

Zemāk mēs apskatīsim divas programmas Excel VBA. Vienkārši viena programma ignorē kļūdas. Otra programma turpina izpildi noteiktā rindā trāpot kļūdai.

Situācija:

Abas programmas aprēķina skaitļu kvadrātsakni.

Kvadrātveida sakne 1

Komandas pogai “Square Root 1” pievienojiet šādas koda rindiņas.

1. Pirmkārt, mēs deklarējam divus diapazona objektus. Range objektus saucam par rng un cell.

Dim rng As Range, šūna As Range

2. Mēs inicializējam Range objektu rng ar izvēlēto diapazonu.

Set rng = Atlase

3. Mēs vēlamies aprēķināt katras šūnas kvadrātsakni nejauši izvēlētā diapazonā (šis diapazons var būt jebkura izmēra). Programmā Excel VBA šim nolūkam varat izmantot cilpu Katram nākamajam. Pievienojiet šādas koda rindiņas:

Katrai šūnai In rng
Nākamā šūna

Piezīme: rng un šūna šeit tiek izvēlēti nejauši, varat izmantot jebkurus nosaukumus. Atcerieties atsaukties uz šiem nosaukumiem pārējā koda daļā.

4. Pievienojiet cilpai šādu koda rindiņu.

Par kļūdu Atsākt nākamo

5. Tālāk mēs aprēķinām vērtības kvadrātsakni. Programmā Excel VBA mēs tam varam izmantot funkciju Sqr. Pievienojiet cilpai šādu koda rindiņu.

cell.Value = Sqr (cell.Value)

6. Izejiet no Visual Basic redaktora un pārbaudiet programmu.

Rezultāts:

Secinājums: Excel VBA ir ignorējusi šūnas, kurās ir nederīgas vērtības, piemēram, negatīvi skaitļi un teksts. Neizmantojot paziņojumu “Par kļūdu, atsākt nākamo”, jūs saņemsiet divas kļūdas. Esiet piesardzīgs un izmantojiet paziņojumu “On Error Resume Next” (Ieslēgt kļūdu, turpinot tālāk) tikai tad, ja esat pārliecināts, ka kļūdas ignorēt ir pareizi.

Kvadrātveida sakne 2

Komandas pogai “Square Root 2” pievienojiet šādas koda rindiņas.

1. Tā pati programma kā Square Root 1, bet “On Error Resume Next” aizstāt ar:

Kļūda GoTo InvalidValue:

Piezīme. InvalidValue šeit tiek izvēlēta nejauši, varat izmantot jebkuru nosaukumu. Neaizmirstiet atsaukties uz šo vārdu pārējā koda daļā.

2. Ārpus katras nākamās cilpas vispirms pievienojiet šādu koda rindiņu:

Iziet no apakšnodaļas

Bez šīs rindas pārējais kods (kļūdas kods) tiks izpildīts, pat ja nav kļūdas!

3. Excel VBA turpina izpildi rindā, kas sākas ar 'InvalidValue:', noklikšķinot uz kļūdas (neaizmirstiet kolu). Pievienojiet šādu koda rindiņu:

InvalidValue:

4. Pagaidām mūsu kļūdas kods ir vienkāršs. Mēs parādām MsgBox ar tekstu un tās šūnas adresi, kurā radās kļūda.

MsgBox "nevar aprēķināt kvadrātsakni šūnā" & cell.Address

5. Pievienojiet šādu rindu, lai uzdotu Excel VBA atsākt izpildi pēc kļūdas koda izpildes.

Atsākt

6. Izejiet no Visual Basic redaktora un pārbaudiet programmu.

Rezultāts:

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave