首页 > 解决方案 > VBA:用于数组的 For 循环给出错误

问题描述

下面的代码给了我“对于数组上的每个控制变量必须是 Variant”错误。但是 ws_names 是一个变体数组,如果我没记错的话。有人可以解释一下吗?谢谢!

Public Sub test12()
    Dim ws_names() As Variant
    ws_names = Array("Sheet2", "Sheet3")
    Dim ws_name As String
    For Each ws_name In ws_names()
        ThisWorkbook.Worksheets(ws_name).Visible = False
    Next ws_name
End Sub

标签: vbaexcel

解决方案


您不需要遍历数组

Dim ws_names() As Variant
ws_names = Array("Sheet2", "Sheet3")

Sheets(ws_names).Visible = False

您也可以使用一个衬里

Sheets(Array("Sheet2", "Sheet3")).Visible = False

推荐阅读