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
选中B1,数据,有效性,自定义,下面公式框中输入
=(A1<>"")*or(B1="男",B1="女")
确定,试试看。
=(A1<>"")*OR(B1="男",B1="女")
应该没问题你看设置有效性的时候上面有个忽略空值的勾不要勾上
无论A1中是否为空,B1中均可输入任何值,没有起到限制作用
兄弟,设置有效性的时候,你把忽略人值点掉