隐藏名为范围数组中的图纸

我有一个dynamic命名的范围,它提供列表中的图纸名称(假设A2 =奥地利,A3 =德国,A4 =波兰)这个列表可以根据用户的大小而有所不同,所以我有一个在指定的范围内的偏移量捕获列A中的所有单元格都带有一个名称。

我想使用IF语句来隐藏基于这个命名范围的某些表单。

就像是:

Public Sub test() Sheets(Array(Range("MyRange"))).Visible = xlVeryHidden End Sub 

与上面我得到以下错误:运行时错误“13”:types不匹配

任何build议,请。

谢谢保罗

你可以循环命名的范围

 Sub Test() dim oCell as range for each oCell in Range("MyRange) Sheets(oCell.value).visible=xlVeryHidden next oCell end sub 

表格不能包含名称数组,因为它是参数,因此它被声明为表格(索引),所以您需要循环访问名称,并不幸地隐藏表单。

尝试:

 Sub test() Dim rngCell As Range For Each rngCell In Range("MyRange") Sheets(rngCell.Value).Visible = xlSheetVeryHidden Next rngCell End Sub 

您可以将数组传递给Sheets(),但是如果从垂直范围获取数组,则需要先将其转置。

这适用于我:

ThisWorkbook.Sheets(Application.Transpose(Sheet3.Range(“SHEETS”)。Value))。Visible = _ xlSheetHidden

SHEETS包含值“Sheet1”和“Sheet2”。 不幸的是,由于某种原因,它似乎只能使用xlSheetHidden而不能使用xlSheetVeryHidden ….

蒂姆