Here's a mild update of your Workbook_SheetActivate() macro, it will not make any changes to the merged cell at the top, perhaps this will do better on your system. They perform the same on mine, less than a second.
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim r As Range, ws As Worksheet
Application.ScreenUpdating = False
Set ws = Worksheets("All Students")
Set r = ws.Range("A2", ws.Range("H" & Rows.Count).End(xlUp))
If Sh.Name <> ws.Name Then
Range("A3", Range("H3").End(xlDown)).ClearContents
r.AutoFilter Field:=8, Criteria1:=Sh.Name
On Error Resume Next
ws.Range("A3", ws.Range("H3").End(xlDown)).SpecialCells(xlCellTypeVisible).Copy Range("A3")
r.AutoFilter
End If
Cells.Columns.AutoFit
Application.ScreenUpdating = True
End Sub
Bookmarks