/ / Obiect aplicație Excel VBA

Excel Object Application Object

WorksheetFunction | ScreenUpdating | DisplayAlerts | Calcul

Mama tuturor obiectelor este Excel în sine. Noi o numim Obiectul aplicației. Obiectul aplicației oferă acces la o mulțime de opțiuni legate de Excel.

WorksheetFunction

Puteți utiliza proprietatea WorkheetFunction în Excel VBA pentru a accesa funcțiile Excel.

1. De exemplu, plasați un buton de comandă pe foaia de lucru și adăugați următoarea linie de cod:

Range("A3").Value = Application.WorksheetFunction.Average(Range("A1:A2"))

Când faceți clic pe butonul de comandă din foaia de lucru, Excel VBA calculează valoarea medie a valorilor din celula A1 și celula A2 și plasează rezultatul în celula A3.

Foaia de lucru în Excel VBA

Notă: în loc de Application.WorksheetFunction.În medie, pur și simplu utilizați WorkheetFunction.Average. Dacă te uiți la bara de formule, puteți vedea că formula însăși nu este inserată în celula A3. Pentru a insera formula în sine în celula A3, utilizați următoarea linie de cod:

Range("A3").Value = "=AVERAGE(A1:A2)"

ScreenUpdating

Uneori vă poate fi util să dezactivați actualizarea ecranului (pentru a evita pâlpâirea) în timpul executării codului. Drept urmare, codul dvs. va rula mai repede.

1. De exemplu, plasați un buton de comandă pe foaia de lucru și adăugați următoarele linii de cod:

Dim i As Integer

For i = 1 To 10000
    Range("A1").Value = i
Next i

Când faceți clic pe butonul de comandă de pe foaia de lucru, Excel VBA afișează fiecare valoare o mică fracțiune de secundă și acest lucru poate dura ceva timp.

ScreenUpdating

2. Pentru a accelera procesul, actualizați codul după cum urmează.

Dim i As Integer

Application.ScreenUpdating = False

For i = 1 To 10000
    Range("A1").Value = i
Next i

Application.ScreenUpdating = True

Ca rezultat, codul dvs. va funcționa mult mai repede și veți vedea numai rezultatul final (10000).

DisplayAlerts

Puteți instrui Excel VBA să nu afișeze alerte în timpul executării codului.

1. De exemplu, plasați un buton de comandă pe foaia de lucru și adăugați următoarea linie de cod:

ActiveWorkbook.Close

Când faceți clic pe butonul de comandă din foaia de lucru, programul Excel VBA închide fișierul dvs. Excel și vă solicită să salvați modificările pe care le-ați efectuat.

DisplayAlerts

2. Pentru a instrui Excel VBA să nu afișeze această alertă în timpul executării codului, actualizați codul după cum urmează.

Application.DisplayAlerts = False

ActiveWorkbook.Close

Application.DisplayAlerts = True

Ca rezultat, Excel VBA închide fișierul dvs. Excel, fără a vă cere să salvați modificările pe care le-ați făcut. Orice schimbări sunt pierdute.

Calcul

Implicit, calculul este setat la automat. Ca rezultat, Excel recalculează automat registrul de lucru de fiecare dată când se modifică o valoare care afectează o formulă. În cazul în care registrul dvs. de lucru conține multe formule complexe, puteți accelera macrocomanda prin setarea calculului la manual.

1. De exemplu, plasați un buton de comandă pe foaia de lucru și adăugați următoarea linie de cod:

Application.Calculation = xlCalculationManual

Când faceți clic pe butonul de comandă din foaia de lucru, Excel VBA setează calculul la manual.

2. Puteți verifica acest lucru făcând clic pe Fișier, Opțiuni, Formule.

Opțiuni de calculare

3. Acum când modificați valoarea celulei A1, valoarea celulei B1 nu este recalculată.

Calcularea manuală

Puteți recalcula manual registrul de lucru apăsând F9.

4. În cele mai multe situații, veți stabili din nou calculul la sfârșitul codului. Pur și simplu adăugați următoarea linie de cod pentru a realiza acest lucru.

Application.Calculation = xlCalculationAutomatic
De asemenea, citiți: