image

Đồng ý! Điều này là quan trọng.

Bất kỳ quy trình VBA tốt nào luôn có dòng này được đề cập ở đầu.

Application.Screenupdating=FALSE

Và trước khi kết thúc thủ tục, bạn cũng sẽ thấy dòng này.

Application.Screenupdating=TRUE

ScreenUpdating là gì?

Cập nhật màn hình là thuộc tính của các đối tượng ứng dụng trong VBA. Nó có thể được đặt thành TRUE hoặc FALSE. Nó giống như một công tắc, có thể được Bật hoặc Tắt.

Và nó làm gì?

Dòng đầu tiên tăng tốc độ xử lý macro bằng cách dừng cập nhật màn hình theo thời gian thực của Excel.

Nếu bạn có một macro dài ghi vào các trang tính khác nhau, áp dụng bộ lọc, xóa bộ lọc, thay đổi trang tính, lưu sổ làm việc, v.v. Và nếu bạn chưa tắt cập nhật màn hình bằng dòng Application.Screenupdating = FALSE, thì bạn sẽ thấy nhấp nháy trên màn hình. Mỗi và mọi thay đổi được thực hiện bởi macro trong sổ làm việc sẽ được hiển thị động. Điều này làm chậm tốc độ macro.

Và nếu bạn có dòng này ở đầu macro, excel sẽ không phản ánh các thay đổi được thực hiện bởi macro cho đến khi bật cập nhật màn hình bằng cách sử dụng dòng Application.Screenupdating = TRUE.

Nếu bạn muốn tăng tốc macro của mình, hãy tắt cập nhật màn hình ở đầu chương trình con và bật cập nhật màn hình trước khi kết thúc chương trình con.

Đây là một ví dụ:

Sub Screencheck()

Application.Screenupdating=FALSE 'Disabling the screen updating.

Sheet1.Activate

Range("A1").value ="Hi"

Range("A2").value ="How are you?"

Range("A3").value ="Exceltip is amazing, isn't it?"

Sheet2.Activate

Application.Screenupdating= TRUE 'Enabling the screen updating.

End Sub

Khi chạy sub trên bạn sẽ không thấy màn hình bị nhấp nháy. Bạn sẽ thấy kết quả cuối cùng của công việc được thực hiện bởi macro này.

_ Ghi chú quan trọng: _

_Đảm bảo rằng bạn bật cập nhật màn hình trước khi quy trình của bạn kết thúc.

Nếu bạn không bật cập nhật màn hình, bạn sẽ không thể xem công việc được thực hiện bởi macro._

Không bật cập nhật màn hình trước mỗi lệnh Exit Sub và End Sub. Bạn thường quên bật cập nhật màn hình trước khi thoát Sub. Nếu bạn không làm điều này, bạn có thể tiếp tục tự hỏi tại sao mã của bạn không hoạt động. Nhưng trong thực tế, nó đã làm. Bạn chỉ không thể nhìn thấy nó .

Đó là nó. Đây là những gì Application.Screenupdating = False làm trong VBA.

Một dòng mã này thay đổi rất nhiều. Đó là sự khác biệt giữa lập trình thuần thục và lập trình bất cẩn. Nếu bạn muốn tăng tốc macro của mình, hãy luôn sử dụng dòng này trong mã của bạn. Tôi hy vọng điều này là hữu ích cho bạn. Nếu bạn có bất kỳ nghi ngờ nào về bài viết này hoặc có bất kỳ câu hỏi nào khác liên quan đến Excel / VBA, hãy hỏi trong phần nhận xét bên dưới. Tôi rất sẵn lòng giúp đỡ.

Bài viết liên quan:

Bài viết phổ biến:

Chức năng Countif là cần thiết để chuẩn bị bảng điều khiển của bạn.