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列表的块。