Excel VBA:使用下拉列表对单元格进行sorting

比方说,我有一个Excel表,其中有一列(例如“B”),其中每个单元格都有一个不同的下拉列表供validation。 我的应用程序是这样的,“B”中的不同单元格可能在其对应的下拉列表中包含不同的项目。 我想sorting我的表使用不同的列作为密钥,例如列“A”,其中包含date,按升序。

我的问题是,Excel的sortingfunction(显然)不包括validation列表。 因此,sorting后,“B”中的每个单元格很可能会以错误的下拉列表结束。 有人可以build议一个简单的方法来实现VBA中的sorting,使其包括下拉列表? 我知道我可以尝试先sorting表,然后用下拉列表填充“B”,但是如果可能的话,我想避免这个选项。

你是对的,sorting似乎不移动validation规则。

一个解决方法是重写您的validation规则是相同的所有单元格。 这可以实现如下:

  • 将您的validation列表排列在一个以Key值为首的块中,例如使用您的样本数据

      FGHIJ 1 1 2 3 4 5 2 1a 2a 3a 4a 5a 3 1b 2b 3b 4b 5b 4 1c 2c 3c 4c 5c 
  • 然后把validation规则写成(列表)(对于第2行) =INDEX($F$2:$J$4,,MATCH($A2,$F$1:$J$1,0))并且复制

这使用列A的值作为行1的查找来确定要用作validation列表的块。