VBA & Macro Problems

Fix Excel Option Buttons Not Triggering Worksheet_Change Event

Anum MushtaqAnum Mushtaq Oct 26, 2026 868 views

Question details

Form-control option buttons update their linked cells but fail to trigger the Worksheet_Change event.

Fix Excel Option Buttons Not Triggering Worksheet_Change Event
Product
Excel
Device & OS
not provided
Scenario
Using form-control option buttons linked to specific cells to trigger a VBA macro upon user selection.
Observed behavior
Manually entering a value into the linked cells triggers the Worksheet_Change event, but selecting the option button does not execute the VBA code.
Before you start

Ensure your Excel workbook is saved as a Macro-Enabled Workbook (.xlsm) and that macros are enabled in your Trust Center settings before writing or modifying VBA code.

Solution 1Recommended

Use the Worksheet_Calculate Event Instead

Since form control updates bypass the Change event, you can force a Calculation event by referencing the linked cell in a dummy formula and triggering your macro from there.

The Worksheet_Change event only fires when a cell is modified directly by a user (typing) or explicitly through VBA. Form-control option buttons update linked cells in the background. To capture this change, you must rely on the Worksheet_Calculate event.

1
Create a dummy formula

Find an empty cell on your worksheet and enter a simple formula that references the cell linked to your option button (e.g., =E172).

2
Open the VBA Editor

Press ALT + F11 to open the Visual Basic for Applications Editor, then double-click the specific Worksheet name in the Project Explorer panel on the left.

3
Select the Calculate event

In the code window, select 'Worksheet' from the left dropdown menu and 'Calculate' from the right dropdown menu to generate the Private Sub Worksheet_Calculate() block.

4
Insert your macro code

Place the VBA code you originally had in the Worksheet_Change event into this new Worksheet_Calculate block, or write a command to Call your existing procedure.

Use the Worksheet_Calculate Event Instead
Code Execution Success: Now, whenever the option button is clicked, the linked cell changes, which forces the dummy formula to recalculate and triggers your macro.

Manage VBA Macros and Form Controls Seamlessly in WPS Office

WPS Office Spreadsheet offers comprehensive support for VBA macros, form controls, and ActiveX elements. You can seamlessly build interactive spreadsheets and run complex event-driven scripts exactly as you would in Microsoft Excel.

  1. 1. Open your macro-enabled file: Launch WPS Spreadsheet and open your existing .xlsm workbook.
  2. 2. Access the Developer tab: Navigate to the Developer tab on the top ribbon to access macro and control tools.
  3. 3. Insert controls: Click 'Insert' to add Option Buttons, Checkboxes, or Dropdowns to your sheet.
  4. 4. Edit VBA Code: Click 'Visual Basic' to open the VBA editor and configure your Worksheet_Calculate or Click events effortlessly.
Fully compatible with Microsoft Excel macro formats (.xlsm and .xltm)Built-in VBA editor for writing, debugging, and executing macrosSupports both Form Controls and ActiveX Controls flawlesslyLightweight, fast, and completely free to download
microsoft office alternative - wps office

Frequently Asked Questions

Why does manual cell entry trigger Worksheet_Change but a Form Control does not?

Manual entry is processed as a direct user edit by Excel's event handler. Form controls update cells in the background via system links, which is considered a calculation or background update. This intentionally bypasses the direct Change event to prevent endless loops in complex sheets.

What is the primary difference between Worksheet_Change and Worksheet_Calculate?

Worksheet_Change triggers when the contents of a cell are directly edited by a user or an explicit VBA command. Worksheet_Calculate triggers whenever the worksheet recalculates its formulas, which happens automatically when precedent cells (like those linked to form controls) are updated.

Can I use Worksheet_Calculate if my workbook is set to Manual Calculation?

If your workbook calculation is set to Manual, the Worksheet_Calculate event will only fire when you manually force a calculation (such as pressing F9). For this solution to work automatically upon clicking the option button, calculation must be set to Automatic.