Sub 拆分表()
Dim wb As Workbook '声明一个工作簿变量
Dim r As Integer, k As Integer '声明r为了存放总行数,k是初始行数
Dim x As Integer '循环变量
With ThisWorkbook.Sheets("sheet1") '使用with 语句 后面凡带.的前面都省略了with后的对象
r = Sheets("sheet1").Range("a65536").End(xlUp).Row '获得r的值,即总行数
For x = 2 To r '在行之间建立循环
k = x '变量k用来记录初始的值
Do Until .Cells(x + 1, 1) <> .Cells(x, 1) '如果发现A列的班级上下名称不一样,中止循环
x = x + 1 '如果名称一样则让x+1,即继续向下循环
Loop
'通过上面的循环可以找到本次班级的区域
Set wb = Workbooks.Add '添加一个excel文件
.Range("a1:f1").Copy wb.Sheets(1).Range("a1") '拷贝标题行
.Cells(k, 1).Resize(x - k + 1, 6).Copy wb.Sheets(1).Range("a2") '拷贝内容行
wb.SaveAs ThisWorkbook.Path & "/" & .Cells(k, 1) & ".xls" '另存新文件
wb.Close True '保存并关闭新文件
Next x '继续找下一个班级
End With
End Sub