今天有同学问到关于大批量Excel的Sheet如何简化排序,但是网上的攻略比较混乱。因此,在这做一下示例。
需求:80页sheet的Excel文档,每页的格式相同,基本内容如下,要求根据A列,升序排列。
代码如下:
Option Explicit
Sub MySort()
Dim i As Integer
Dim maxRow As Integer
Dim sht As Worksheet
'遍历所有工作表
For i = 1 To ActiveWorkbook.Worksheets.Count
Set sht = ActiveWorkbook.Worksheets(i)
'激活当前工作表,Sort只能排序当前工作表
sht.Activate
'获取当前表最大行数
maxRow = sht.UsedRange.Rows.Count
'选取范围进行排序:这里是选取a3:ao41(前两行因为是标题,所以不选);key是排序的列,这里写a3,表示以a列为依据排序,最多可以写3个key;order表示升序降序;Header表示是否有标题,由于我们没选a1、a2,所以这里写no
sht.Range("a3:ao" & maxRow).Sort key1:=sht.Range("a3"), order1:=xlAscending, H