Excel VBA StatusBar собственности
Свойство StatusBar объекта Application в Excel VBA можно использовать для отображения прогресса длительного макроса. Таким образом, вы можете позволить ноу пользователей, что макрос все еще работает.
Ситуация:
Макрос мы будем создавать заполнит Range ( «A1: E20») со случайными числами.
Добавьте следующие строки кода к командной кнопке:
-
Во-первых, мы объявляем три переменные типа Integer, по имени I, J и pctCompl.
Dim i As Integer, j As Integer, pctCompl As Integer
-
Добавьте двойную петлю.
For i = 1 To 20 For j = 1 To 5 Next j Next i
Добавьте следующие строки кода (в 3, 4 и 5) к петле.
-
С помощью функции RANDBETWEEN импортировать случайное число в диапазоне от 20 до 100.
Cells(i, j).Value = WorksheetFunction.RandBetween(20, 100)
-
Инициализировать переменную pctCompl. Вторая строка кода записывает значение переменной pctCompl и описательного текст в строке состояния.
pctCompl = (i - 1) 5 + (j 1) Application.StatusBar = "Importing Data.. " & pctCompl & "% Completed"
Пример: I = 3, J = 1, (3 — 1) 5 + (1 1) = 11% было завершено.
-
Мы используем метод Wait объекта Application, чтобы имитировать длинный макрос.
Application.Wait Now + TimeValue("00:00:01")
-
Для того, чтобы восстановить текст строки состояния по умолчанию, установите свойство StatusBar в Ложные (вне цикла).
Application.StatusBar = False
Результат при нажатии на кнопку управления на листе:
Примечание: Вы можете ссылка: / VBA-примеры прерываний-а-макро [прерывание макроса]
в любое время, нажав клавишу Esc или Ctrl + Break. Для более наглядного подхода см нашей ссылки: / VBA-примеры-прогресс-индикатор
программа [Индикатор Прогресса].