Excel 2010-我如何从两个列表中创建一个验证列表并给它们倾斜



如何在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包含所需的性别。

最新更新