Excel父单元格值变更时清除关联下拉列表的VBA代码求助
Excel关联下拉联动清空VBA实现方案
操作步骤
- 打开目标Excel文件,按下
Alt + F11调出VBA编辑器 - 在左侧工程资源管理器面板中,双击你需要该功能生效的工作表,打开对应的代码编辑窗口
- 将下方代码完整粘贴到代码编辑窗口,保存文件即可生效
完整代码
Private Sub Worksheet_Change(ByVal Target As Range) ' 多选修改时不执行逻辑,避免报错 If Target.CountLarge > 1 Then Exit Sub ' 校验修改的单元格是否属于H列8-34行范围 If Not Intersect(Target, Me.Range("H8:H34")) Is Nothing Then ' 临时关闭事件触发,防止清空单元格时循环触发本事件 Application.EnableEvents = False ' 清空当前行I、J列的单元格内容 Me.Range("I" & Target.Row & ":J" & Target.Row).ClearContents ' 恢复事件触发,不影响Excel其他功能正常运行 Application.EnableEvents = True End If End Sub
注意事项
- 保存文件时需要选择
Excel 启用宏的工作簿(*.xlsm)格式,否则代码会丢失失效 - 如果需要保留I、J列的下拉列表规则和单元格格式,只清空内容,可以将代码中的
ClearContents替换为Value = "" - 该代码仅对当前粘贴的工作表生效,如果需要全工作簿生效,可将代码放到
ThisWorkbook模块中,事件替换为Workbook_SheetChange即可
内容的提问来源于stack exchange,提问作者Sumit
相关产品推荐
相关产品推荐

