Excel 2010 – 与LIST的单元格不sorting

我正在使用下面的代码来sorting单元格:

Sub RecordSort() Application.ScreenUpdating = False Application.DisplayAlerts = False ActiveSheet.Unprotect Password:="password" Dim lastrow As Long Dim ws As Worksheet lastrow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row ActiveSheet.Sort.SortFields.Clear ActiveSheet.Sort.SortFields.Add Key:=Range( _ "B3:B" & lastrow), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal With ActiveSheet.Sort .SetRange Range("A3:P" & lastrow) .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With ActiveSheet.Protect Password:="password" Application.ScreenUpdating = True Application.DisplayAlerts = True Range("A3").Select End Sub 

在LI列中有一个包含5个代码的下拉列表。 当我将一个单元格添加到文件的底部时,它在列L中具有下拉列表。一旦我对它sorting(使用上面的macros),该列在L列中不再有下拉列表。是否有不同的方法我应该sorting?

我根据列B(这是一个姓氏)的内容sorting列A到P。

这是因为数据validation适用于单元本身,而不适用于单元中的值。 所以当您对值进行sorting时,数据validation仍适用于原始单元格。 最简单的解决方法可能是通过select整个列并创buildvalidation规则将数据validation列表添加到整个列L – 是一个选项吗?