2016-12-05 29 views
0

私は15枚のシートを含むワークシートを持っています。 「メインメニュー」シートが必要なので、ボタンをクリックして、選択したシートにリダイレクトして、他のすべてのシートを隠しておきます。選択したシートから、私は "メインメニュー"シートに戻って、やはりすべてを隠しておきたいと思っています。したがって、その時点で1枚のシートしか表示されません。シートを非表示/非表示 - VBA

私の問題は次のとおりです。 私が使用しているVBAコードは完璧に動作していますが、エラー Run time error '1004': Method 'Visible' of object '_Worksheet'failed が表示されることがあります。デバッグするときは、次のように表示されます。debug screen

コードは「完全に」動作しますが、実行時エラー1004がポップアップすることがあります。私は間違って何をしていますか?コードは次のとおりです。

Sub Button8_Click() 
Sheet3.Visible = xlSheetVisible 
Dim sh As Worksheet 

    For Each sh In ThisWorkbook.Sheets 
     If sh.Name <> "practice group - mtd" Then 
      sh.Visible = xlSheetHidden 
     End If 
    Next sh 
End Sub 
+0

最後のvisibileシートを非表示にするとこのエラーが発生する可能性があります。 Sheet3は "practice group - mtd"という名前のシートと同じですか? –

+0

また、すべてのタブは「ワークシート」ですか?グラフ/マクロ/ダイアログなどとは対照的に、メモリが提供される場合、それらはすべて「シート」オブジェクトですが、すべてが可視プロパティを持つわけではありません。これについては100%ではありません。 –

+0

@ s.stormシートに「リダイレクトされた」場所が不明ですか?私は何のシートも見ません( "whatever_you_Selected")。あなたが共有したコードのどこでも有効にしてください –

答えて

0

すべてのシートをループ回避するために、より迅速な回避策: どこかメインメニューシートに隠された目に見えるシートの名前を保持します。 (非表示のセルで、固定位置にあります)。 ボタンをクリックすると、表示されているものとは異なるものが選択された場合、選択されたものが表示され、前のシートが非表示になり、メインメニューが更新されます。

+0

あなたの答えをありがとう!しかし、愚かな疑問を残して申し訳ありません、どうすればいいのですか?私はこのすべてにかなり新しいです。その後、VBAコードは何ですか? –

関連する問題