隐藏名为范围数组中的图纸
我有一个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 ….
蒂姆