ten Właściwość StatusBar obiektu Application w Excel VBA może służyć do wskazywania postępu długiego makra. W ten sposób możesz poinformować użytkownika, że makro jest nadal uruchomione.
Sytuacja:
Makro, które stworzymy, wypełnia zakres("A1:E20") liczbami losowymi.
Dodaj następujące wiersze kodu do przycisku polecenia:
1. Najpierw deklarujemy trzy zmienne typu Integer o nazwach i, j oraz pctCompl.
Dim i As Integer, j As Integer, pctCompl As Integer
2. Dodaj podwójną pętlę.
Dla i = 1 do 20
Dla j = 1 do 5
Następny j
Dalej ja
Dodaj następujące wiersze kodu (w 3, 4 i 5) do pętli.
3. Użyj funkcji RandBetween, aby zaimportować liczbę losową z przedziału od 20 do 100.
Cells(i, j).Value = WorksheetFunction.RandBetween(20, 100)
4. Zainicjuj zmienną pctCompl. Druga linia kodu zapisuje wartość zmiennej pctCompl i tekst opisowy na pasku stanu.
pctKomplet = (i - 1) * 5 + (j * 1)
Application.StatusBar = "Importowanie danych… " & pctCompl & "% Ukończono"
Przykład: Dla i = 3, j = 1, (3 - 1) * 5 + (1 * 1) = 11% zostało zakończone.
5. Używamy metody Wait obiektu Application do symulacji długiego makra.
Aplikacja.Czekaj teraz + TimeValue("00:00:01")
6. Aby przywrócić domyślny tekst paska stanu, ustaw właściwość StatusBar na False (poza pętlą).
Application.StatusBar = False
Wynik po kliknięciu przycisku polecenia na arkuszu:
Uwaga: Makro można przerwać w dowolnym momencie, naciskając klawisz Esc lub Ctrl + Break. Aby uzyskać bardziej wizualne podejście, zobacz nasz program Wskaźnika postępu.