Felhantering i Excel VBA - Enkla Excel -makron

Innehållsförteckning

Nedan kommer vi att titta på två program i Excel VBA. Ett program helt enkelt ignorerar fel. Det andra programmet fortsätter körningen på en angiven rad när du träffar ett fel.

Situation:

Båda programmen beräknar kvadratroten av tal.

Kvadratrot 1

Lägg till följande kodrader till kommandoknappen 'Square Root 1'.

1. Först deklarerar vi två Range -objekt. Vi kallar Range -objekt rng och cell.

Dim rng As Range, cell As Range

2. Vi initierar Range -objektet rng med det valda intervallet.

Ställ in rng = Selection

3. Vi vill beräkna kvadratroten för varje cell i ett slumpmässigt valt område (detta område kan vara av valfri storlek). I Excel VBA kan du använda slingan För varje nästa för detta. Lägg till följande kodrader:

För varje cell I rng
Nästa cell

Notera: rng och cell väljs slumpmässigt här, du kan använda alla namn. Kom ihåg att hänvisa till dessa namn i resten av din kod.

4. Lägg till följande kodrad i slingan.

Vid fel Återuppta nästa

5. Därefter beräknar vi kvadratroten av ett värde. I Excel VBA kan vi använda Sqr -funktionen för detta. Lägg till följande kodrad i slingan.

cell.Value = Sqr (cell.Value)

6. Avsluta Visual Basic Editor och testa programmet.

Resultat:

Slutsats: Excel VBA har ignorerat celler som innehåller ogiltiga värden som negativa tal och text. Utan att använda "On Error Resume Next" -uttalandet skulle du få två fel. Var försiktig så att du bara använder uttalandet "Vid felåterupptagning nästa" när du är säker på att ignorera fel är OK.

Square Root 2

Lägg till följande kodrader till kommandoknappen 'Square Root 2'.

1. Samma program som Square Root 1 men ersätt "Vid fel Återuppta nästa" med:

Vid fel GoTo InvalidValue:

Obs! InvalidValue väljs slumpmässigt här, du kan använda valfritt namn. Kom ihåg att hänvisa till detta namn i resten av din kod.

2. Utanför För varje nästa slinga, lägg först till följande kodrad:

Avsluta Sub

Utan denna rad kommer resten av koden (felkoden) att köras, även om det inte finns något fel!

3. Excel VBA fortsätter körningen på raden som börjar med "InvalidValue:" när du träffar ett fel (glöm inte kolon). Lägg till följande kodrad:

Ogiltigt värde:

4. Vi håller vår felkod enkel för tillfället. Vi visar en MsgBox med lite text och adressen till cellen där felet uppstod.

MsgBox "kan inte beräkna kvadratroten vid cell" och cell.Address

5. Lägg till följande rad för att instruera Excel VBA att återuppta körningen efter att felkoden har körts.

Återuppta nästa

6. Avsluta Visual Basic Editor och testa programmet.

Resultat:

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave