我正在尝试从A到Z对大量列表进行排序。但如果我对A列进行排序,我不希望重新排列所有其他列。我需要所有这些列表按字母顺序排序。我知道可以一个接一个地做,但我有278列。有没有办法让它自动化?
答案 0 :(得分:4)
如果任何列的数据中没有空白单元格,则以下是略微不同的方法,不假设行数的最大值。
Sub SortIndividualJR()
Dim rngFirstRow As Range
Dim rng As Range
Dim ws As Worksheet
Application.ScreenUpdating = False
Set ws = ActiveSheet
Set rngFirstRow = ws.Range("A1:JR1")
For Each rng In rngFirstRow
With ws.Sort
.SortFields.Clear
.SortFields.Add Key:=rng, Order:=xlAscending
'assuming there are no blank cells..
.SetRange ws.Range(rng, rng.End(xlDown))
.Header = xlYes
.MatchCase = False
.Apply
End With
Next rng
Application.ScreenUpdating = True
End Sub
user1281385的代码没有错;正如我所说,这只是另一种选择。
已添加如果有一些空白,请修改上述代码以使用.SetRange ws.Range(rng, rng.Range("A1000").End(xlUp))
,将1000更改为您预期的任何内容将大于最大数据行数。
答案 1 :(得分:2)
选择要排序的列,然后按“排序和过滤”框会出现
Expand selection
continue with current selection
选择继续当前选择
然后选择您希望如何排序。对要排序的每列重复此操作。
展开选择是默认选项
宏
Dim oneRange as Range Dim aCell as Range For I = 1 to 278 Set oneRange = Range("r1c" & I & ":r1000c" & I) Set aCell = Range("r1c" & I) oneRange.Sort Key1:=aCell, Order1:=xlAscending, Header:=xlYes Next I
应该工作