Proprietate StatusBar a obiectului Aplicație în Excel VBA poate fi folosit pentru a indica progresul unei macro-uri lungi. În acest fel, puteți informa utilizatorul că o macrocomandă rulează în continuare.
Situatie:
Macro-ul pe care îl vom crea umple Range ("A1: E20") cu numere aleatorii.
Adăugați următoarele linii de cod la butonul de comandă:
1. În primul rând, declarăm trei variabile de tip Integer, numite i, j și pctCompl.
Dim i As Integer, j As Integer, pctCompl As Integer
2. Adăugați o buclă dublă.
Pentru i = 1 până la 20
Pentru j = 1 până la 5
Următorul j
Apoi eu
Adăugați următoarele linii de cod (la 3, 4 și 5) la buclă.
3. Utilizați funcția RandBetween pentru a importa un număr aleatoriu între 20 și 100.
Celule (i, j) .Value = WorksheetFunction.RandBetween (20, 100)
4. Inițializați variabila pctCompl. A doua linie de cod scrie valoarea variabilei pctCompl și un text descriptiv în bara de stare.
pctCompl = (i - 1) * 5 + (j * 1)
Application.StatusBar = "Importul datelor …" & pctCompl & "% Finalizat"
Exemplu: Pentru i = 3, j = 1, (3 - 1) * 5 + (1 * 1) = 11% a fost finalizat.
5. Folosim metoda Wait a obiectului Application pentru a simula o macro lungă.
Aplicație. Așteptați acum + TimeValue ("00:00:01")
6. Pentru a restabili textul implicit al barei de stare, setați proprietatea StatusBar la False (în afara buclei).
Application.StatusBar = Fals
Rezultatul când faceți clic pe butonul de comandă de pe foaie:
Notă: Puteți întrerupe o macro în orice moment apăsând Esc sau Ctrl + Break. Pentru o abordare mai vizuală, consultați programul nostru Indicator de progres.