VBA & Macro Problems

How to Stop an Excel ComboBox from Reappearing After Selection

Kushani NimanthikaKushani Nimanthika Nov 3, 2026 868 views

Question details

The user needs to prevent a searchable ComboBox from automatically reopening or reappearing when entering data into other cells after a selection has already been made.

How to Stop an Excel ComboBox from Reappearing After Selection
Product
Excel
Device & OS
not provided
Scenario
Using a macro-enabled workbook for data entry where searchable ComboBox controls are assigned to specific fields like requester, manager, and approver.
Observed behavior
The ComboBox reappears unexpectedly when the user selects or enters data into an unrelated cell, disrupting the normal data entry workflow.
Before you start

Make sure to save a backup copy of your workbook before modifying the VBA code, as changes made in the Visual Basic Editor cannot be reverted using the standard Undo function.

Solution 1Recommended

Modify the Worksheet_SelectionChange Macro

Update the VBA event procedure to restrict the ComboBox so it only triggers when the specific target cells are selected.

If a ComboBox reappears on every click, it is usually because the Worksheet_SelectionChange event does not have proper conditional logic restricting its active range.

1
Open the Visual Basic Editor

Press Alt + F11 on your keyboard to open the VBA Editor.

2
Locate the Worksheet Code

In the Project Explorer pane on the left, double-click the specific worksheet (e.g., Sheet1) that contains your ComboBoxes.

3
Find the SelectionChange Event

Look for the block of code starting with 'Private Sub Worksheet_SelectionChange(ByVal Target As Range)'.

4
Add an Intersect Condition

Insert logic to limit the macro to your specific entry cells. For example: 'If Intersect(Target, Range("A2:A10")) Is Nothing Then Exit Sub'. This stops the ComboBox from appearing when clicking outside A2:A10.

5
Save and Test

Save your code, return to the worksheet, and click on an unrelated cell to ensure the ComboBox remains hidden.

Modify the Worksheet_SelectionChange Macro
Target Multiple Ranges: If you have multiple ComboBoxes, you can use 'Select Case' or multiple 'If Intersect' statements to handle different target ranges independently.
Powerful Spreadsheet Tool

Create and Edit VBA Macros Seamlessly in WPS Spreadsheet

WPS Office provides robust support for VBA macros, allowing you to easily troubleshoot, edit, and run complex scripts just like you would in Excel. Fix ComboBox issues quickly with its built-in Visual Basic Editor.

  1. 1. Open Your File in WPS: Launch WPS Spreadsheet and open your macro-enabled workbook.
  2. 2. Access the Developer Tab: Navigate to the Developer tab on the top ribbon.
  3. 3. Open the Visual Basic Editor: Click on 'Visual Basic Editor' to view and modify your ComboBox event macros.
  4. 4. Save Your Fixes: Apply the necessary conditional logic and save the file to enjoy a smooth, interruption-free data entry experience.
Fully compatible with Microsoft Excel (.xlsm) macro-enabled formatsBuilt-in Advanced VBA Editor for precise macro debugging and editingLightweight performance ensuring smooth operation even with complex scriptsFamiliar user interface for seamless workflow migration
microsoft office alternative - wps office

Frequently Asked Questions

Why does my Excel ComboBox keep resizing or moving automatically?

This is often caused by object positioning properties. To fix it, right-click the ComboBox, select 'Format Control', go to the 'Properties' tab, and choose 'Don't move or size with cells'.

How do I completely hide a ComboBox using VBA?

You can completely hide a ComboBox by setting its Visible property to False in your macro. For example, use the line: 'ActiveSheet.ComboBox1.Visible = False'.

Can I make the ComboBox appear only when I double-click a cell instead of just selecting it?

Yes. Instead of placing your code in the Worksheet_SelectionChange event, move the trigger code to the Worksheet_BeforeDoubleClick event in the VBA Editor, ensuring you set 'Cancel = True' to prevent the cell from entering standard edit mode.