Свойство на StatusBar на Excel VBA - Лесни макроси на Excel

Съдържание

The Свойство StatusBar на обекта на приложението в Excel VBA може да се използва за обозначаване на напредъка на дълъг макрос. По този начин можете да уведомите потребителя, че макросът все още работи.

Ситуация:

Макросът, който ще създадем, запълва Range ("A1: E20") със случайни числа.

Добавете следните кодови редове към командния бутон:

1. Първо, декларираме три променливи от тип Integer, наречени i, j и pctCompl.

Dim i As Integer, j As Integer, pctCompl As Integer

2. Добавете двоен цикъл.

За i = 1 до 20
За j = 1 до 5
Следващ j
Следва i

Добавете следните кодови редове (на 3, 4 и 5) към цикъла.

3. Използвайте функцията RandBetween, за да импортирате произволно число между 20 и 100.

Клетки (i, j) .Value = Работен лист Функция.RandBetween (20, 100)

4. Инициализирайте променливата pctCompl. Вторият кодов ред записва стойността на променливата pctCompl и някакъв описателен текст в лентата на състоянието.

pctCompl = (i - 1) * 5 + (j * 1)
Application.StatusBar = "Импортиране на данни …" & pctCompl & "% завършено"

Пример: За i = 3, j = 1, (3 - 1) * 5 + (1 * 1) = 11% е завършено.

5. Използваме метода Wait на обекта Application, за да симулираме дълъг макрос.

Приложение. Изчакайте сега + TimeValue ("00:00:01")

6. За да възстановите стандартния текст на лентата на състоянието, задайте свойството StatusBar на False (извън цикъла).

Application.StatusBar = False

Резултат, когато щракнете върху командния бутон на листа:

Забележка: Можете да прекъснете макроса по всяко време, като натиснете Esc или Ctrl + Break. За по -визуален подход вижте нашата програма за индикатор на напредъка.

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave