Sử dụng statusbar để hiển thị phần trăm công việc hoàn thành

Euler

Administrator
Thành viên BQT
Trong list video bài học của diễn đàn, các bạn đã được hướng dẫn tạo Progressbar để hiển thị phần trăm công việc hoàn thành.
Link:
Bạn cần đăng nhập để thấy đa phương tiện

Hôm nay, mình sẽ giới thiệu mọi người sử dụng thanh trạng thái của Excel để hiển thị phần trăm công việc.
Các bạn biết rằng, khi dữ liệu xử lý lớn, mất nhiều thời gian, tâm lý người dùng rất sốt ruột. Vì thế, sẽ là chuyên nghiệp nếu chúng ta cung cấp cho người dùng thông tin về macro đang xử lý tới đâu.
Các bạn chạy thử code này:
Mã:
Sub Sample01()
    Dim i As Long
    For i = 1 To 10000
        Application.StatusBar = "Dang xu ly dong thu " & i
    Next i
    Application.StatusBar = False 'Trả lại trạng thái statusbar bình thường sau khi kết thúc chương trình
End Sub
Kết quả sẽ được như sau:
Bạn cần đăng nhập để thấy hình ảnh


Vì i được cập nhật quá nhanh, cho nên chúng ta không kịp theo dõi bằng mắt. Ta có thể làm chậm tiến độ cập nhật statusbar bằng cách giãn quá trình này như sau:
Mã:
Sub Sanple02()
    Dim i As Long
    For i = 1 To 200000
        If i Mod 1000 = 0 Then
            Range("A1") = i
            Application.StatusBar = "Dang xu ly thong tin..." & String(Int(i / 1000), "|")
        End If
    Next i
    Application.StatusBar = False
End Sub
Kết quả:
Bạn cần đăng nhập để thấy hình ảnh


Diễn đàn Tự học VBA (tuhocvba.net) tham khảo và dịch từ:
 
T

thanhphuongvip

Guest
Rồi mình chèn code này vào chỗ nào trong code thực thi chương trình vậy bạn?
Ví dụ mình muốn hiển thị trạng thái hoàn thành thi thực hiện code này:
Mã:
Sub tonkho_xoaloc()
If ActiveSheet.FilterMode = False Then Exit Sub
Sheet14.ShowAllData
Range("B3:C3").ClearContents

End Sub
 

Euler

Administrator
Thành viên BQT
Chương trình của anh thì không chèn được đâu anh. Yêu cầu là phải có vòng lặp rồi cho nó vào trong vòng lặp.
Mà người ta chỉ cho vào với dữ liệu lớn, vì cho cái này vào là cũng làm chương trình chạy chậm đi đấy ạ.
 
Top