如何在excel 2010中从两个列表中创建一个验证列表并向它们倾斜?
例如:
Column A:
1 Boys Names
2 Danny
3 Sam
3 Luke
Column B:
1 Girls Names
2 Sarah
3 Ellen
4 Jessica
在C列中,我希望能够在没有任何依赖关系的情况下从A+B列中选择"名称"。我希望能够在下拉列表中看到:
Boys Names
-------------------
Danny
Sam
Luke
Girls Names
--------------------
Sarah
Ellen
Jessica
我不想选择"男孩的名字"one_answers"女孩的名字",但只能选择:丹尼、山姆、卢克、莎拉、艾伦或杰西卡。有可能吗?
对于这样的列表:
男孩的名字
---------------
丹尼
山姆
卢克女孩的名字
-----------
Sarah
Ellen
Jessica
您可以在工作表模块中包含以下VBA代码:
Private Sub Worksheet_Change(ByVal Target As Range)
Case "Boys Names", "Girls Names", "-----------": 'If the value is one of these options
Target.Clear 'Blank the cell
End Select
End Sub
可以使用If Target.Value="Boys Names" OR Target.Value="Girls Names"OR Target.Value="-----------" Then
,但Switch
语句更简单、更整洁。您可能还想使用Intersect
来检查目标单元格,以防在工作表的另一部分中需要这些值中的任何一个。
如前所述,Worksheet_Change
可能是在列表中包含不可选择项目的最佳选择。但如果你愿意考虑另一种解决方案,你可以在另一个单元格中选择要显示姓名的性别。然后,在数据验证对话框中,您可以给出一个公式来选择适当的列表,例如:
=IF(A1="Male",Names!$A$2:$A$4,Names!$B$2:$B$4)
其中Names
是包含您的姓名列表的表格,A1
包含所需的性别。