手上有几百个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宏可用。