单元格B43数据验证列表变更时清空B44内容的VBA代码无效问题
问题解决办法
你的VBA代码没生效的核心原因是事件过程名称写错了——Excel的工作表内容变更触发的内置事件必须用Worksheet_Change这个固定名称,你写的Worksheet_agreement不属于Excel内置的工作表事件,系统根本不会触发它。
修正后的代码如下,直接替换你原来的代码即可:
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Me.Range("B43")) Is Nothing Then Me.Range("B44").ClearContents End If End Sub
额外注意事项:
- 代码必须放在目标工作表的代码模块里(不是标准模块):打开VBA编辑器(按Alt+F11),在左侧工程窗口找到对应工作表,双击打开代码窗口后粘贴代码
- 用
Me.Range替代直接写Range,能确保引用的是当前工作表的单元格,避免跨表引用错误 - 保存文件时要选启用宏的格式(比如
.xlsm或.xlsb),否则宏会被Excel自动禁用
内容的提问来源于stack exchange,提问作者Rachel Taylor
相关产品推荐
相关产品推荐

