A number passed to Worksheets will be treated as an index into the collection,
not a reference to the name of the sheet.
I'd think that about the only way you'd be able to find sheets with numeric
names would be to loop through the sheets and check their names against what
you're looking for.
Numbers are not very good names for sheets. Name your sheets something like
"Department 310" - much more readable as well as easier to use.
You can still keep your integer array of department numbers. Just append it to
"Department " every time you want to name or use a sheet. E.g.:
Worksheets("Department " & Data(i)).Range("a1").PasteSpecial