按列Asorting不工作Excel VBA

我正在尝试从A2-A30000范围中的列A进行sorting,并且我想在列A行1上进行下拉列表,但它既不sorting也不启用列A行1上的下拉列表。即使没有VBA,当我只selectA1并按下自动过滤,最后将下拉框放在A2上。 发生的另一个问题是,它只对列A进行sorting,但只是移动列A,而将其他列单独留下,导致整个工作表错误。

ActiveWorkbook.Worksheets("Sheet3").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Sheet3").Sort.SortFields.Add Key:=Range("A2"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Sheet1").Sort .SetRange Range("A2:A30000") .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With 

任何想法可能是错的?

 ActiveWorkbook.Worksheets("Sheet3").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Sheet3").Sort.SortFields.Add Key:=Range("A2"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Sheet3").Sort .SetRange Range("A2:BZ30000") .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With 

感谢您的评论

你只是引用列A; 使用.CurrentRegion属性来隔离辐射到第一个完全空白行和完全空白列的数据“岛”。 我怀疑你在A1有一个文本列标签。

 With ActiveWorkbook.Worksheets("Sheet3") With .Cells(1, "A").CurrentRegion .Cells.Sort Key1:=.Columns(1), Order1:=xlAscending, _ Orientation:=xlTopToBottom, Header:=xlYes End With End With 

logging的代码在某些情况下工作正常,但sorting可以更有效地处理VBAfunction。

你真的应该知道你是否有头, 从来没有使用xlGuess。