logo
search
VBA & Macro Problems

Fix Excel Worksheet_Change Event Not Working with Dropdowns

Olivia MillerOlivia Miller Oct 1, 2026 869 views

Question details

The user's Excel VBA Worksheet_Change event for a multiple-selection dropdown fails to trigger or run correctly, only seeming to work after the workbook is saved.

Fix Excel Worksheet_Change Event Not Working with Dropdown Lists
Product
Microsoft Excel
Device & OS
not provided
Scenario
Using a dropdown list configured with a Worksheet_Change VBA event macro to automate sheet updates.
Observed behavior
The VBA code does not execute upon changing the dropdown selection unless the workbook is saved, primarily caused by unintended worksheet protection blocking cell modifications.
Before you start

Ensure you have saved a backup of your workbook with a macro-enabled (.xlsm) extension and verify that macros are fully enabled in your application's Trust Center settings.

Solution 1Recommended

Remove Unintended Worksheet Protection

The most common cause for a Worksheet_Change event failing to execute properly is that the worksheet is protected, preventing the VBA script from modifying locked cells.

When a worksheet is protected, any VBA code attempting to write data, format cells, or manipulate objects on that sheet will result in a silent failure or an error. Removing the protection allows the macro to run freely.

1
Navigate to the Review tab

Open your workbook and click on the 'Review' tab in the top ribbon.

2
Unprotect the sheet

Click the 'Unprotect Sheet' button. If prompted, enter the password used to lock the sheet.

3
Test the dropdown

Change a value in your dropdown list to verify that the Worksheet_Change event now triggers successfully.

Remove Unintended Worksheet Protection
Tip: If you need the sheet to remain protected for end-users, you must unprotect and reprotect the sheet dynamically within your VBA code.
Efficient Alternative

Manage VBA and Dropdown Lists Seamlessly in WPS Office

WPS Spreadsheet offers robust support for VBA macros and data validation dropdowns, providing a smooth environment to automate tasks, manage worksheet protection, and execute Worksheet_Change events without friction.

  1. 1. Open your macro-enabled workbook: Launch WPS Spreadsheet and open your .xlsm file containing the dropdown list.
  2. 2. Manage Worksheet Protection: Go to the 'Review' tab and click 'Unprotect Sheet' to ensure your macros have permission to modify cells.
  3. 3. Enable Macros: If prompted by the security warning at the top of the workspace, click 'Enable Content' to activate VBA execution.
  4. 4. Run your automation: Interact with your dropdown list; WPS Office will seamlessly handle the Worksheet_Change event in the background.
Fully compatible with Microsoft Excel (.xlsm) macro-enabled formatsUser-friendly interface for managing worksheet protection and data validationAdvanced VBA editor for seamless macro execution and troubleshootingLightweight software that processes complex scripts quickly
QA img-9

Frequently Asked Questions

Why does my Worksheet_Change macro only work after saving the workbook?

This usually indicates an event-handling glitch, a background calculation issue, or a memory leak in the VBA environment. Saving the workbook often forces the application to recalculate and refresh its event listeners, temporarily fixing the freeze.

Why doesn't the Worksheet_Change event fire when a cell is updated by a formula?

The Worksheet_Change event is strictly triggered by physical user input, pasting data, or an external link update. If a formula result changes based on other cells, you should use the Worksheet_Calculate event instead.

How do I make sure my VBA code is in the correct module?

Worksheet_Change is a sheet-specific event. It will not work if placed in 'Module1' or 'ThisWorkbook'. In the VBA Editor, you must double-click the specific sheet name (e.g., Sheet1) under Microsoft Excel Objects and paste the code there.

Does WPS Office support Worksheet_Change events?

Yes, WPS Spreadsheet fully supports VBA macros, including Worksheet_Change events, provided you are using a version of WPS Office with the VBA module installed and macros are enabled in your security settings.