Option Explicit
Private Sub Worksheet_Activate()
Dim TNF(), L As Long
ReDim TNF(1 To ThisWorkbook.Worksheets.Count, 1 To 1)
For L = 1 To UBound(TNF): TNF(L, 1) = ThisWorkbook.Worksheets(L).Name: Next L
With Me.ListObjects(1)
If L <= .ListRows.Count Then .ListRows(L).Range.Resize(.ListRows.Count - L + 1).Delete xlShiftUp
.DataBodyRange.Resize(UBound(TNF, 1)).Value = TNF
End With
End Sub