如何根据另一单元格值在带data validation的单元格显示N/A
Excel实现D11选cash时D13自动显示N/A的方案
两种方案按需选择,都不会破坏两个单元格原有独立下拉菜单的配置:
方案1:无宏公式方案(适合不想启用宏的临时场景,存在功能限制)
选中D13单元格,直接在公式栏输入:=IF(D11="cash","N/A","")注意:这个方案下,当D11不是
cash时,你手动点D13下拉选值会覆盖单元格里的公式,下次D11再切回cash就不会自动显示N/A,需要重新输入公式,仅适合临时单次使用。方案2:VBA自动触发方案(长期稳定使用推荐,不破坏原有下拉功能)
- 打开目标Excel文件,按
Alt+F11调出VBA编辑器 - 在编辑器左侧工程栏,双击你当前操作的工作表名称
- 在弹出的代码编辑区粘贴以下代码:
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("D11")) Is Nothing Then Application.EnableEvents = False If Range("D11").Value = "cash" Then Range("D13").Value = "N/A" Else If Range("D13").Value = "N/A" Then Range("D13").ClearContents End If Application.EnableEvents = True End If End Sub- 把文件另存为
.xlsm格式(启用宏的工作簿),重新打开后启用宏即可生效。
生效后逻辑:D11选到cash时,D13会自动填入N/A;如果需要锁死D13在cash场景下不能修改,可以额外给D13加数据验证自定义规则,公式写=D11<>"cash",出错提示按需设置即可;D11切到其他下拉选项时,D13的N/A会自动清空,你可以正常用D13的下拉菜单选需要的值,之前选过的非N/A内容也不会被误清空。
- 打开目标Excel文件,按
内容的提问来源于stack exchange,提问作者Nene
相关产品推荐
相关产品推荐

