There could be several things going on.
1. Not all sheet names, exists in that array.
2. The workbook to copy to is not open.
3. The filename.ext is what I use. You can probably use it without the file extension if Windows Explorer is setup to not show file extensions. I show them on mine.
4. I don't see the error line in the code. For that first part, try adding back your file extension.
Here are two ways one can do it. I made mine a bit more generic.
Sub Test1()
Dim myArray, ws As Worksheet, wb As Workbook
Set wb = Workbooks("ken.xls")
myArray = WorksheetFunction.Transpose(Worksheets(1).Range("A1:A2"))
For Each ws In Worksheets(myArray)
Debug.Print ws.Name
Next ws
Worksheets(myArray).Copy after:=wb.Worksheets(1)
Application.CutCopyMode = False
End Sub
Sub Test2()
Dim myArray, ws As Worksheet, wb As Workbook
Set wb = Workbooks("ken.xls")
myArray = WorksheetFunction.Transpose(Worksheets(1).Range("A1:A2"))
For Each ws In Sheets(myArray)
Debug.Print ws.Name
Next ws
Sheets(myArray).Copy after:=wb.Sheets(1)
Application.CutCopyMode = False
End Sub
I don't think that mine varies that much from yours. Mine works since I do not have the issues detailed.
WorkSheets are not always equal to Sheets. e.g. Chart sheets.