Fejlhåndtering i Excel VBA - nemme Excel -makroer

Indholdsfortegnelse

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 kvadratroden af ​​tal.

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.

Dim rng As Range, cell As Range

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

Indstil rng = 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:

For hver celle I rng
Næste celle

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:

Konklusion: Excel VBA har ignoreret celler, der indeholder ugyldige værdier såsom negative tal og tekst. Uden at bruge erklæringen 'On Error Resume Next' 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 GoTo InvalidValue:

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:' efter at have ramt 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" & cell.Address

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

Genoptag næste

6. Afslut Visual Basic Editor, og test programmet.

Resultat:

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave