Синтаксис цикла For Each ... Next * : Для каждого элемента в group ... Next element
Для коллекций элемент может быть только переменной Variant, универсальной переменной объекта или любой конкретной переменной объекта. Для массивов элемент может быть только переменной Variant.
Таким образом, будет работать следующее:
Public Sub test12()
Dim ws_names() As Variant
ws_names = Array("Sheet2", "Sheet3")
Dim ws_name As Variant
For Each ws_name In ws_names()
ThisWorkbook.Worksheets(ws_name).Visible = False
Next ws_name
End Sub
Однако, как указал @GMalc вих ответ, цикл даже не нужен для этого.