300 Eksempler

Fejlhåndtering

Error Handling

Nedenfor ser vi på to programmer i Excel VBA . Et enkelt program ignorerer fejl . Det andet program fortsætter udførelsen på en bestemt linje ved at ramme en fejl.





Situation:

Begge programmer beregner kvadrat rod af tal.





Fejlhåndtering i Excel VBA

Firkantet rod 1

Tilføj følgende kodelinjer til kommandoknappen 'Square Root 1'.



1. For det første erklærer vi to Range -objekter. Vi kalder Range -objekterne rng og cell.

IngenrngSomOmråde, celleSomRækkevidde

2. Vi initialiserer Range -objektet rng med det valgte område.

Sætrng = Valg

3. Vi ønsker at beregne kvadratroden af ​​hver celle i et tilfældigt valgt område (dette område kan være af enhver størrelse). I Excel VBA kan du bruge For Every Next loop til dette. Tilføj følgende kodelinjer:

Til HvercelleIrng

Næstecelle

Bemærk: rng og celle vælges tilfældigt her, du kan bruge alle navne. Husk at henvise til disse navne i resten af ​​din kode.

4. Tilføj følgende kodelinje til sløjfen.

Ved fejl Genoptag næste

5. Dernæst beregner vi kvadratroden af ​​en værdi. I Excel VBA kan vi bruge Sqr -funktionen til dette. Tilføj følgende kodelinje til sløjfen.

cell.Value = Sqr (cell.Value)

6. Afslut Visual Basic Editor, og test programmet.

Resultat:

Ved fejl Genoptag næste resultat

Konklusion: Excel VBA har ignoreret celler, der indeholder ugyldige værdier såsom negative tal og tekst. Uden at bruge 'On Error Resume Next' -udsætningen ville du få to fejl. Vær forsigtig med kun at bruge erklæringen 'Ved fejl genoptag næste', når du er sikker på at ignorere fejl er OK.

Square Root 2

Tilføj følgende kodelinjer til kommandoknappen 'Square Root 2'.

1. Det samme program som Square Root 1, men erstat 'On Error Resume Next' med:

Ved fejl GoToUgyldig værdi:

Bemærk: InvalidValue vælges tilfældigt her, du kan bruge et hvilket som helst navn. Husk at referere til dette navn i resten af ​​din kode.

2. Udenfor For hvert næste loop skal du først tilføje følgende kodelinje:

Afslut Sub

Uden denne linje vil resten af ​​koden (fejlkode) blive udført, selvom der ikke er nogen fejl!

3. Excel VBA fortsætter udførelsen på linjen, der starter med 'InvalidValue:' ved at ramme en fejl (glem ikke kolon). Tilføj følgende kodelinje:

Ugyldig værdi:

4. Vi holder vores fejlkode enkel for nu. Vi viser en MsgBox med noget tekst og adressen på cellen, hvor fejlen opstod.

MsgBox 'kan ikke beregne kvadratrod på celle' og cell.Adresse

5. Tilføj følgende linje for at instruere Excel VBA i at genoptage udførelsen efter udførelse af fejlkoden.

Genoptag Næste

6. Afslut Visual Basic Editor, og test programmet.

Resultat:

hvordan man opretter vlookup i Excel

Ved fejl GoTo Resultat

Ved fejl GoTo Resultat

Ved fejl GoTo Resultat

3/6 gennemført! Lær meget mere om makrofejl>
Gå til næste kapitel: Strengmanipulation



^