Klaidų tvarkymas „Excel VBA“ - paprastos „Excel“ makrokomandos

Turinys

Žemiau apžvelgsime dvi programas Excel VBA. Viena programa tiesiog ignoruoja klaidas. Kita programa toliau vykdo nurodytą eilutę pataikęs į klaidą.

Situacija:

Abi programos apskaičiuoja skaičių kvadratinę šaknį.

Kvadratinė šaknis 1

Į komandų mygtuką „Square Root 1“ pridėkite šias kodo eilutes.

1. Pirmiausia deklaruojame du Range objektus. Range objektus vadiname rng ir cell.

Dim rng As Range, langelis As Range

2. Mes inicijuojame diapazono objektą rng pasirinktu diapazonu.

Nustatyti rng = Pasirinkimas

3. Mes norime apskaičiuoti kiekvienos langelio kvadratinę šaknį atsitiktinai pasirinktame diapazone (šis diapazonas gali būti bet kokio dydžio). „Excel VBA“ tam galite naudoti ciklą „Kiekvienam kitam“. Pridėkite šias kodo eilutes:

Kiekvienai langeliui In rng
Kitas langelis

Pastaba: rng ir ląstelė čia pasirenkami atsitiktinai, galite naudoti bet kokius pavadinimus. Nepamirškite nurodyti šių pavadinimų likusioje kodo dalyje.

4. Prie kilpos pridėkite šią kodo eilutę.

Dėl klaidos Tęsti toliau

5. Toliau apskaičiuojame vertės kvadratinę šaknį. „Excel VBA“ tam galime naudoti funkciją Sqr. Pridėkite šią kodo eilutę prie kilpos.

cell.Value = Sqr (cell.Value)

6. Išeikite iš „Visual Basic“ redaktoriaus ir išbandykite programą.

Rezultatas:

Išvada: „Excel VBA“ ignoravo langelius, kuriuose yra netinkamų verčių, tokių kaip neigiami skaičiai ir tekstas. Nenaudodami teiginio „On Error Resume Next“ gausite dvi klaidas. Būkite atsargūs ir naudokite teiginį „On Error Resume Next“ tik tada, kai esate tikri, kad ignoruoti klaidas yra gerai.

Kvadratinė šaknis 2

Į komandų mygtuką „Square Root 2“ pridėkite šias kodo eilutes.

1. Ta pati programa kaip ir „Square Root 1“, bet „On Error Resume Next“ pakeiskite į:

Dėl klaidos „GoTo InvalidValue“:

Pastaba: „InvalidValue“ čia pasirinkta atsitiktinai, galite naudoti bet kurį pavadinimą. Nepamirškite nurodyti šio pavadinimo likusioje kodo dalyje.

2. Už ciklo „Kiekvienai kitai“ pirmiausia pridėkite šią kodo eilutę:

Išeiti iš Sub

Be šios eilutės likusi kodo dalis (klaidos kodas) bus vykdoma, net jei nėra klaidos!

3. „Excel VBA“ tęsia vykdymą ties eilute, prasidedančia „InvalidValue:“, kai susiduria su klaida (nepamirškite dvitaškio). Pridėkite šią kodo eilutę:

Neteisinga vertė:

4. Kol kas klaidos kodas yra paprastas. Mes rodome „MsgBox“ su tam tikru tekstu ir langelio, kuriame įvyko klaida, adresą.

„MsgBox“ negali apskaičiuoti kvadratinės šaknies ląstelėje “& cell.Address

5. Pridėkite šią eilutę, kad nurodytumėte „Excel VBA“ tęsti vykdymą įvykdžius klaidos kodą.

Tęsti toliau

6. Išeikite iš „Visual Basic“ redaktoriaus ir išbandykite programą.

Rezultatas:

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave