Tratarea erorilor în Excel VBA - Macro Excel ușor

Cuprins

Mai jos vom analiza două programe în Excel VBA. Un program pur și simplu ignoră erorile. Celălalt program continuă executarea la o linie specificată la lovirea unei erori.

Situatie:

Ambele programe calculează rădăcina pătrată a numerelor.

Rădăcina pătrată 1

Adăugați următoarele linii de cod la butonul de comandă „Rădăcina pătrată 1”.

1. În primul rând, declarăm două obiecte Range. Numim obiectele Range rng și celulă.

Dim rng As Range, celulă As Range

2. Inițializăm obiectul Range rng cu domeniul selectat.

Set rng = Selection

3. Vrem să calculăm rădăcina pătrată a fiecărei celule într-un interval selectat aleatoriu (acest interval poate fi de orice dimensiune). În Excel VBA, puteți utiliza bucla Pentru fiecare următor pentru aceasta. Adăugați următoarele linii de cod:

Pentru fiecare celulă din rng
Următoarea celulă

Notă: rng și celulă sunt alese la întâmplare aici, puteți folosi orice nume. Nu uitați să consultați aceste nume în restul codului.

4. Adăugați următoarea linie de cod în buclă.

La eroare Reluați în continuare

5. Apoi, calculăm rădăcina pătrată a unei valori. În Excel VBA, putem folosi funcția Sqr pentru aceasta. Adăugați următoarea linie de cod la buclă.

cell.Value = Sqr (cell.Value)

6. Ieșiți din Visual Basic Editor și testați programul.

Rezultat:

Concluzie: Excel VBA a ignorat celulele care conțin valori nevalide, cum ar fi numerele negative și textul. Fără a utiliza declarația „On Error Resume Next”, veți primi două erori. Aveți grijă să utilizați declarația „On Error Resume Next” numai dacă sunteți sigur că ignorarea erorilor este OK.

Rădăcina pătrată 2

Adăugați următoarele linii de cod la butonul de comandă „Rădăcina pătrată 2”.

1. Același program ca Square Root 1, dar înlocuiți „On Error Resume Next” cu:

On Error GoTo InvalidValue:

Notă: InvalidValue este ales aleatoriu aici, puteți folosi orice nume. Nu uitați să consultați acest nume în restul codului.

2. În afara buclei For Each Next, mai întâi adăugați următoarea linie de cod:

Ieșiți din Sub

Fără această linie, restul codului (cod de eroare) va fi executat, chiar dacă nu există nicio eroare!

3. Excel VBA continuă executarea la linia care începe cu „Valoare nevalidă:” la lovirea unei erori (nu uitați de două puncte). Adăugați următoarea linie de cod:

Valoare invalida:

4. Păstrăm codul nostru de eroare simplu pentru moment. Afișăm un MsgBox cu un anumit text și adresa celulei în care a apărut eroarea.

MsgBox „nu poate calcula rădăcina pătrată la celulă” & cell.Address

5. Adăugați următoarea linie pentru a instrui Excel VBA să reia executarea după executarea codului de eroare.

Reluați în continuare

6. Ieșiți din Visual Basic Editor și testați programul.

Rezultat:

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave