2011-02-01 8 views
0

リストにシート名を指定する動的名前付き範囲があります(A2 =オーストリア、A3 =ドイツ、A4 =ポーランド)このリストはユーザーによって異なるため、指定された範囲にオフセットがあり、列Aのすべてのセルをその中の名前で取得できます。名前付き範囲の配列のシートを非表示にする

私は、この名前付き範囲に基づいて特定のシートを非常に隠すためにIF文を使用したいと思います。 実行時エラー '13':私は次のエラーを取得する上記と

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

:よう

何か 型の不一致

何か提案してください。

はそれが引数のよう ポール

答えて

1

名前付き範囲

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

シートは、名前の配列を取ることができない、それはシート(指標)として宣言されています、ありがとうございますので、名前をループする必要があり、一つ一つのシートを非表示にします残念ながら。

試してみてください。

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

は、このヘルプポールましたか? –

0

上だけループあなたはシート(に配列を渡すことができます可能性が)、しかし、あなたは、垂直範囲からそれを取得している場合は、最初に移調する必要があります。

この

は私の作品:

ThisWorkbook.Sheets(Application.Transpose(Sheet3.Range( "SHEETS")の値)。)可視= SHEETSは値「シート1が含まれています_ xlSheetHidden

。 "および" Sheet2 " は、残念ながら、それだけでxlSheetVeryHiddenでxlSheetHiddenと連携していないように思われる、いくつかの理由のために....

ティム