Feilhåndtering i Excel VBA - Enkle Excel -makroer

Innholdsfortegnelse

Nedenfor ser vi på to programmer i Excel VBA. Ett program rett og slett ignorerer feil. Det andre programmet fortsetter utførelsen på en spesifisert linje ved å treffe en feil.

Situasjon:

Begge programmene beregner kvadratroten av tall.

Kvadratrot 1

Legg til følgende kodelinjer på kommandoknappen 'Square Root 1'.

1. Først erklærer vi to Range -objekter. Vi kaller Range -objektene rng og cell.

Dim rng As Range, cell As Range

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

Sett rng = Valg

3. Vi ønsker å beregne kvadratroten til hver celle i et tilfeldig valgt område (dette området kan være av hvilken som helst størrelse). I Excel VBA kan du bruke For Every Next loop for dette. Legg til følgende kodelinjer:

For hver celle I rng
Neste celle

Merk: rng og celle velges tilfeldig her, du kan bruke alle navn. Husk å referere til disse navnene i resten av koden.

4. Legg til følgende kodelinje i løkken.

Ved feil Fortsett neste

5. Deretter beregner vi kvadratroten til en verdi. I Excel VBA kan vi bruke Sqr -funksjonen til dette. Legg til følgende kodelinje i løkken.

cell.Value = Sqr (cell.Value)

6. Avslutt Visual Basic Editor og test programmet.

Resultat:

Konklusjon: Excel VBA har ignorert celler som inneholder ugyldige verdier som negative tall og tekst. Uten å bruke setningen 'On Error Resume Next' vil du få to feil. Vær forsiktig med å bare bruke "On Error Resume Next" -erklæringen når du er sikker på at ignorering av feil er OK.

Square Root 2

Legg til følgende kodelinjer på kommandoknappen 'Square Root 2'.

1. Det samme programmet som Square Root 1, men erstatt "On Error Resume Next" med:

Ved feil GoTo InvalidValue:

Merk: InvalidValue er tilfeldig valgt her, du kan bruke et hvilket som helst navn. Husk å referere til dette navnet i resten av koden.

2. Utenfor For Every Next -løkken, legg først til følgende kodelinje:

Avslutt Sub

Uten denne linjen vil resten av koden (feilkoden) bli utført, selv om det ikke er noen feil!

3. Excel VBA fortsetter utførelsen på linjen som begynner med "InvalidValue:" når du treffer en feil (ikke glem kolon). Legg til følgende kodelinje:

Ugyldig verdi:

4. Vi holder vår feilkode enkel for nå. Vi viser en MsgBox med litt tekst og adressen til cellen der feilen oppstod.

MsgBox "kan ikke beregne kvadratrot på celle" og cell.Address

5. Legg til følgende linje for å instruere Excel VBA i å gjenoppta kjøringen etter å ha utført feilkoden.

Fortsett neste

6. Avslutt Visual Basic Editor og test programmet.

Resultat:

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave