/ / Excel VBA PropertyBar

Excel VBA StatusBar властивість

The Властивість StatusBar об'єкта програми в Excel VBA може бути використаний для позначення прогресу тривалого макросу. Таким чином, ви можете дозволити користувачеві знати, що макрос все ще працює.

Ситуація:

Макрос, який ми збираємося створити, заповнює діапазон ("A1: E20") з випадковими числами.

Приклад власності у форматі Excel VBA

Додайте наступні кодові рядки до кнопки команди:

1. По-перше, ми оголошуємо три змінні типу Integer, названі i, j та pctCompl.

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

2. Додати подвійний цикл.

For i = 1 To 20
    For j = 1 To 5

    Next j
Next i

Додайте наступні кодові рядки (на 3, 4 та 5) до циклу.

3. Використовуйте функцію RandBetween, щоб імпортувати випадкове число від 20 до 100.

Cells(i, j).Value = WorksheetFunction.RandBetween(20, 100)

4. Ініціалізація змінної pctCompl. Другий рядок коду записує значення змінної pctCompl і описовий текст в рядку стану.

pctCompl = (i - 1) * 5 + (j * 1)
Application.StatusBar = "Importing Data.. " & pctCompl & "% Completed"

Приклад: для i = 3, j = 1, (3 - 1) * 5 + (1 * 1) = 11% завершено.

5. Ми використовуємо метод Wait об'єкта Application для імітації тривалого макросу.

Application.Wait Now + TimeValue("00:00:01")

6. Щоб відновити стандартний рядок тексту, встановіть властивість StatusBar на False (за межами циклу).

Application.StatusBar = False

Результат, коли ви натискаєте кнопку команди на аркуші:

Excel VBA StatusBar Результат власності

Примітка. Ви можете перервати макрос в будь-який час, натиснувши Esc або Ctrl + Break. Для більш наочного підходу див. Нашу програму показників прогресу.

Також читайте: