EXCEL 如何同时对 多个页 的 同一列 进行排序

手上有几百个excel表,每个表中有多个页(sheet1、2、3...),每页中都存有相同格式的数据,如B列中都是数值,我想打开一个excel,对其含有的多个页,都按B列数值大小,各自同时升序排列,这样可以省得一个一个点进去手动排列了。有没有高手帮忙看看呢,先在此谢过。

在Excel中按ALT+F11打开VBA编辑器,双击左侧VBA project下ThisWorkBook,在右侧编辑窗口粘贴以下代码,保存后关闭。再次打开时,Excel会自动把所有sheet的按第2列排序(本代码为升序)。

Private Sub Workbook_Activate()

Dim ws As Integer

For ws = 1 To ActiveWorkbook.Sheets.Count

With ActiveWorkbook.Worksheets(ws)
    '.Activate
    '.Columns("B:B").Select
    .Sort.SortFields.Clear
    .Sort.SortFields.Add Key:=Range("B1"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
End With

With ActiveWorkbook.Worksheets(ws).Sort
    .SetRange Range("A2:Z100")    '   Z是最大列号,100是最大行号,可以根据实际调整
    .Header = xlGuess
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With

Next ws

End Sub

如果不能生效,请保证VBA宏可用。