ComboBox选项变更后VBA未自动触发单元格隐藏/显示问题求助
解决ComboBox选择后需按回车才触发VBA的问题
原代码依赖Worksheet_Change事件,该事件仅在单元格内容手动确认(如按回车、切换单元格)时触发,而ComboBox选择选项不会直接触发单元格变更确认,因此需要按回车。以下分两种控件类型给出解决方案:
1. 若使用ActiveX类型ComboBox
ActiveX控件自带Change事件,选择选项时会立即触发,无需依赖单元格变更:
- 右键点击ComboBox → 选择「查看代码」
- 替换为以下代码(注意控件名称要与实际一致):
Private Sub ComboBox1_Change() ' 替换成你的ComboBox实际名称 Select Case Me.ComboBox1.Value Case "by Payor" Rows("29:78").Hidden = True Rows("80:135").Hidden = True Rows("137:192").Hidden = True Rows("194:249").Hidden = True Case "by Specialty" Rows("29:78").Hidden = False Rows("80:135").Hidden = False Rows("137:192").Hidden = False Rows("194:249").Hidden = False End Select End Sub
2. 若使用表单控件(Form Control)ComboBox
表单控件需绑定宏来触发操作:
- 右键点击表单ComboBox → 选择「指定宏」
- 新建宏并输入以下代码:
Sub ComboBox_SelectionChange() Dim cb As Object Set cb = ActiveSheet.Shapes(Application.Caller).ControlFormat Select Case cb.Value Case "by Payor" Rows("29:78").Hidden = True Rows("80:135").Hidden = True Rows("137:192").Hidden = True Rows("194:249").Hidden = True Case "by Specialty" Rows("29:78").Hidden = False Rows("80:135").Hidden = False Rows("137:192").Hidden = False Rows("194:249").Hidden = False End Select End Sub
内容的提问来源于stack exchange,提问作者Ni Luh Sila Dewi
相关产品推荐
相关产品推荐

