Fix Excel Option Buttons Not Triggering Worksheet_Change Event
Question details
Form-control option buttons update their linked cells but fail to trigger the 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.
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.
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.
Find an empty cell on your worksheet and enter a simple formula that references the cell linked to your option button (e.g., =E172).
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.
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.
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.

Assign a Macro Directly to the Form Control
If you do not strictly need a cell-change event, you can bypass cell events entirely by assigning your macro directly to the option button.
Switch to ActiveX Option Buttons
ActiveX controls have built-in click events that can trigger macros directly without relying on linked cells or recalculations.
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. Open your macro-enabled file: Launch WPS Spreadsheet and open your existing .xlsm workbook.
- 2. Access the Developer tab: Navigate to the Developer tab on the top ribbon to access macro and control tools.
- 3. Insert controls: Click 'Insert' to add Option Buttons, Checkboxes, or Dropdowns to your sheet.
- 4. Edit VBA Code: Click 'Visual Basic' to open the VBA editor and configure your Worksheet_Calculate or Click events effortlessly.

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.




