You could hide them all except the current worksheet first:
Sub pk1() Dim ws As Worksheet, c As Range For Each ws In ThisWorkbook.Worksheets If ws.Name <> ThisWorkbook.ActiveSheet.Name Then ws.Visible = xlSheetHidden End If Next ws On Error Resume Next For Each c In Range("A1", Cells(Rows.Count, "A").End(xlUp)) Worksheets(c.Value).Visible = xlSheetVisible Next c End Sub