excel中,怎样设置:如果A列为空则B列不能输入内容,如果A列不为空则B列可以输入预设的内容。

比如:A1为空,则B1不许输入;A1不为空,则B1可输入“男”、“女”,而不能输入其它内容。反复试验了,公式确实没错,也取消了“忽略空值”,但是只对键盘输入和鼠标双击再右... 比如:A1为空,则B1不许输入;A1不为空,则B1可输入“男”、“女”,而不能输入其它内容。
反复试验了,公式确实没错,也取消了“忽略空值”,但是只对键盘输入和鼠标双击再右键粘贴的方式有效,而对下拉填充、Ctrl+V填充和直接鼠标右键单击粘贴都不起作用。
比如:在B列均设置为=(A1<>"")*or(B1="男",B1="女")数据有效性时,
1、A列空时,B列可以通过Ctrl+V填充和直接鼠标右键单击粘贴方式输入“李四”等任何字符,而且输入以后再查看B列的数据有效性没变,还是自定义;
2、A1不为空时,B1可以键盘输入“男”,这时A2为空,而B2可以通过B1下拉方式输入“男”,同样再查看B2的数据有效性没变,还是自定义。
平时工作时,多数情况下使用下拉和粘贴方式输入,这数据有效性就失去控制意义了。
这是Excel的刻意设计,还是一个bug,还是我没理解数据有效性的含义呢?
希望各位再给出解答,我的分数很多,可以再追加悬赏。谢谢!
展开
 我来答
匿名用户
2011-12-18
展开全部
VBA可以实现,在工作表名处鼠标右键“查看代码中”,找到当前需要限制输入的工作表名,并在其上鼠标右键“查看代码中”,在右边的空白框中复制并粘贴如下事件的代码即可:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo err
Application.EnableEvents = False
If Target.Column = 2 Then '如果当前编辑的为B列
'判断对应的A列是否有内容
If Range("A" & Target.Row).Value = "" Then '对应的A列为空

Range("B" & Target.Row).Value = "" '将当前输入内容变为空,并提示如下内容
MsgBox "请先输入A" & Target.Row & "单元格内容。"
Else
'判断B列内容
If Range("B" & Target.Row).Value <> "男" And Range("B" & Target.Row).Value <> "女" Then
MsgBox "B列只能输入别""男""或""女""。"
End If

End If
End If
Application.EnableEvents = True

Exit Sub
err:
Application.EnableEvents = True
MsgBox err.Description
End Sub
山桑弓
2011-12-16 · TA获得超过1.2万个赞
知道大有可为答主
回答量:7793
采纳率:66%
帮助的人:2749万
展开全部
选中B1,数据,有效性,自定义,下面公式框中输入
=(A1<>"")*or(B1="男",B1="女")
确定,试试看。
追问
谢谢回答,可试验后,无论A1中是否为空,B1中均可输入任何值,没有起到限制作用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
10993358
2011-12-17 · TA获得超过4279个赞
知道大有可为答主
回答量:1813
采纳率:100%
帮助的人:2233万
展开全部
=(A1<>"")*OR(B1="男",B1="女")
应该没问题你看设置有效性的时候上面有个忽略空值的勾不要勾上
追问
去掉忽略控制后真的好使了。
可我发现,在C1应用这个数据有效性时,把“男”换成特殊符号“√”时,忽略空值去掉也不行,不知为什么?
而且应用自定义数据有效性后,没有了下拉箭头,不能直接选“男”“女”和“√”了。我提问时没考虑到,最好能有下拉箭头,这样便于输入。
追答
=(A1"")*OR(B1="男",B1="女",B1="√")
箭头要选择序列才可以的 要不你有效性直接用序列吧 里面输入 男,女,√ 就是不能在A列空的时候限制输入 或者帮你写个小代码 可以不?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
howard10
2011-12-17 · TA获得超过109个赞
知道小有建树答主
回答量:135
采纳率:0%
帮助的人:72.6万
展开全部
无论A1中是否为空,B1中均可输入任何值,没有起到限制作用

兄弟,设置有效性的时候,你把忽略人值点掉
追问
去掉忽略控制后真的好使了。
可我发现,在C1应用这个数据有效性时,把“男”换成特殊符号“√”时,忽略空值去掉也不行,不知为什么?
而且应用自定义数据有效性后,没有了下拉箭头,不能直接选“男”“女”和“√”了。我提问时没考虑到,最好能有下拉箭头,这样便于输入。
追答
在设置有效性的时候
允许里选择“序列” 会出现提供下拉选择勾选框
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式