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