Если вам нужно go через ваш массив, я бы предложил что-то вроде:
For Each ws In ThisWorkbook.Worksheets(wsname)
Или даже напрямую:
For Each ws In ThisWorkbook.Worksheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5"))
Это может выглядеть так:
Sub Test()
Dim ws As Worksheet
Dim wsname As Variant: wsname = Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5")
For Each ws In ThisWorkbook.Worksheets(wsname)
If Not ws Is ActiveSheet Then
'Do Something
End If
Next ws
End Sub
Однако, работа с ActiveSheet
(и .Activate
в вашем исходном посте) вряд ли когда-либо понадобится, и никогда не рекомендуется!