2016-06-10 136 views
2

假设我有一个Excel表格,其中包含一列(例如“B”),其中每个单元格都有一个用于验证的不同下拉列表。我的应用程序是这样的,“B”中的不同单元格可能在其相应的下拉列表中包含不同的项目。我想用一个不同的列作为关键字对我的表进行排序,例如列“A”,它包含日期,按升序排列。Excel VBA:使用下拉列表对单元格进行排序

我的问题是,Excel的排序功能(显然)不包括验证列表。因此,排序后,“B”中的每个单元格很可能最终会出现错误的下拉列表。有人可以建议一种简单的方法来实现VBA中的排序,使其包含下拉列表?我知道我可以先尝试对表格进行排序,然后用下拉列表填充“B”,但如果可能,我想避免使用该选项。

回答

2

你是对的,排序似乎不移动验证规则。

解决方法之一是将所有单元格的验证规则重写为相同。这可以如下实现:

  • 使用您的样本数据

     F G H I J 
    1 1 2 3 4 5 
    2 1a 2a 3a 4a 5a 
    3 1b 2b 3b 4b 5b 
    4 1c 2c 3c 4c 5c 
    
  • 然后写验证规则为安排您的验证列出了块,与Key值为首,如(表) (用于行2)=INDEX($F$2:$J$4,,MATCH($A2,$F$1:$J$1,0))和复制下来

这使用从A列的值作为查找在行确定要用作验证列表的块。

相关问题