logo
search
VBA & Macro Problems

How to Stop Excel VBA Screen Flickering During Macro Execution

Huda QurayshiHuda Qurayshi Oct 13, 2026 871 views

Question details

The user wants to eliminate screen flickering in Excel while running a VBA macro, as standard screen updating commands are not fully preventing the issue.

How to Stop Excel VBA Screen Flickering During Macro Execution
Product
Microsoft Excel
Device & OS
not provided
Scenario
Executing a long or complex VBA macro where the screen still updates visibly, particularly near the end of the script or during progress tracking.
Observed behavior
The Excel interface flickers or flashes during macro execution because of background calculations, event triggers, or the use of specific UI-updating VBA commands.
Before you start

Ensure you have saved a backup of your current workbook and VBA code before making structural changes to your macros.

Solution 1Recommended

Optimize VBA Code to Prevent Screen Flickering

Refactoring your VBA code to avoid direct selections and properly structure screen updating commands is the most effective way to eliminate flickering.

Although setting Application.ScreenUpdating to False is the standard method to pause screen refreshes, relying on .Select or .Activate commands forces Excel to update the user interface anyway. Direct referencing is highly recommended to keep the background processing hidden.

1
Open the VBA Editor

Press ALT + F11 to open the Microsoft Visual Basic for Applications window, then locate your macro module.

2
Set Application Commands

Ensure Application.ScreenUpdating = False is placed at the very beginning of your procedure, and Application.ScreenUpdating = True is at the very end.

3
Remove Select and Activate Methods

Search for any .Select or .Activate methods in your code. Replace them with direct workbook and worksheet references.

4
Use With Blocks

Group your object modifications using With blocks to apply changes directly. For example: With ThisWorkbook.Worksheets("Data") .Range("A1").Interior.PatternColorIndex = xlAutomatic End With.

5
Disable Calculations and Events

Temporarily disable automatic calculations and events during execution by adding Application.Calculation = xlCalculationManual and Application.EnableEvents = False at the start, restoring them at the end.

Optimize VBA Code to Prevent Screen Flickering
Handling Progress Displays: If you need to show macro progress for a long procedure, use a VBA UserForm instead of updating a cell or the status bar, as constant UI updates will trigger flickering.
Free Microsoft Office alternative

Try WPS Office for a Seamless Spreadsheet Experience

If you frequently encounter performance issues, lag, or macro limitations in Microsoft Excel, consider switching to WPS Office. It provides a lightweight, highly compatible alternative for managing complex spreadsheets and data analysis tasks efficiently.

  1. 1. Download the Installer: Visit the official WPS Office website and click the free download button for your operating system.
  2. 2. Install WPS Office: Run the downloaded installer and follow the quick on-screen instructions to set up the software.
  3. 3. Open Your Spreadsheets: Launch WPS Spreadsheet and open your existing Excel workbooks to enjoy seamless formatting and fast performance.
Completely free to download and use for all essential office tasks.Excellent compatibility with Microsoft Excel formats (.xlsx, .xls, .xlsm, .csv).Lightweight architecture ensures it runs extremely fast on any system, reducing screen lag.Clean, intuitive interface that feels familiar immediately, requiring no learning curve.
microsoft office alternative - wps office

Frequently Asked Questions

Why does my screen still flicker when Application.ScreenUpdating is False?

Even with ScreenUpdating turned off, specific commands like .Select, .Activate, or .ScrollRow force the spreadsheet application to bypass this setting and update the visual interface. Using direct range referencing completely prevents this bypass.

How can I show macro progress without causing screen flicker?

Updating a spreadsheet cell or the Status Bar repeatedly forces UI refreshes and causes flickering. The best practice is to create a VBA UserForm to act as a progress bar, which renders smoothly over the application independently of the cell grid.

Do calculation events trigger screen flickering?

Yes, if your macro triggers automatic recalculations or workbook events (such as Worksheet_Change) while processing data, it can cause screen refreshes. You can prevent this by setting Application.Calculation to xlCalculationManual at the beginning of your code.