Thuộc tính StatusBar của đối tượng Ứng dụng trong Excel VBA có thể được sử dụng để chỉ ra tiến trình của một macro dài dòng. Bằng cách này, bạn có thể cho người dùng biết rằng một macro vẫn đang chạy.

Tình huống:

Macro mà chúng ta sẽ tạo sẽ điền vào Phạm vi (“A1: E20”) với các số ngẫu nhiên.

Excel VBA StatusBar Property Example

Thêm các dòng mã sau vào nút lệnh:

  1. Đầu tiên, chúng ta khai báo ba biến kiểu Integer, có tên là i, j và pctCompl.

Dim i As Integer, j As Integer, pctCompl As Integer
  1. Thêm một vòng lặp kép.

For i = 1 To 20

For j = 1 To 5

Next j

Next i

Thêm các dòng mã sau (tại 3, 4 và 5) vào vòng lặp.

  1. Sử dụng hàm RandBetween để nhập một số ngẫu nhiên từ 20 đến 100.

Cells(i, j).Value = WorksheetFunction.RandBetween(20, 100)
  1. Khởi tạo biến pctCompl. Dòng mã thứ hai ghi giá trị của biến pctCompl và một số văn bản mô tả trên thanh trạng thái.

pctCompl = (i - 1)  5 + (j  1)

Application.StatusBar = "Importing Data.. " & pctCompl & "% Completed"

Ví dụ: Với i = 3, j = 1, (3 – 1) 5 + (1 1) = 11% đã được hoàn thành.

  1. Chúng tôi sử dụng phương thức Wait của đối tượng Application để mô phỏng một macro dài dòng.

Application.Wait Now + TimeValue("00:00:01")
  1. Để khôi phục văn bản thanh trạng thái mặc định, hãy đặt thuộc tính StatusBar thành Sai (bên ngoài vòng lặp).

Application.StatusBar = False

Kết quả khi bạn bấm vào nút lệnh trên sheet:

Excel VBA StatusBar Property Result