2017-11-01 9 views
0

午後すべて!他のワークシートのドロップダウンリストを使用して行を自動的に非表示にするVBA

さまざまなドロップダウンリストの結果を使用して、ドロップダウンリストの値が変更されると自動的にスプレッドシート上の関連する行を非表示にしています。

グーグルでは、別のワークシートからドロップダウンリストセルを指定しようとしているにもかかわらず、うまく機能していますが、私は下にある設定を見つけました。次を使用して

Private Sub Worksheet_Change(ByVal Target As Range) 

    Dim disabled As Boolean 
    If Range("D2") = "Yes" Then 
     disabled = True 
    End If 

    If disabled Then 
     Rows("3:8").EntireRow.Hidden = False 
    Else   
     Rows("3:8").EntireRow.Hidden = True 
    End If 

End sub 

は働いていた、と解決のためにグーグルでは、多くの行き止まりに私をリードしているしていない。

If Sheets("Topsheet").Range("D27") = "Yes" Then 

は私が原因変数を宣言するとき、隣接するシートから値を使用することができませんプライベートなサブですか?

私は数時間のうちにこれを困惑しているので、何か助けてくれれば幸いです!

答えて

0

コードを大幅に簡略化することができます。また

Private Sub Worksheet_Change(ByVal Target As Range) 
    Sheets("SheetWithRowsToBeHidden").Rows("3:8").EntireRow.Hidden = IIf(Me.Range("D27").Value2 = "Yes", True, False) 
End Sub 

(あなたはそれがあなたと同じではありません場合はシート名を更新する必要があります)、これを使ってみてください、あなたはこのコードを入れているところ?あなたはそれをモジュールの中に入れましたか、それともシートオブジェクトですか?ドロップダウンがあるシートオブジェクト内にある必要があります。

+0

こんにちはTom - コードをいただきありがとうございます。私はずっと簡単です!コードはシートオブジェクト(「ビルドの詳細」)に含まれていますが、問題はドロップダウンが別のワークシートにあることにあります。この問題を回避するために、私はドロップダウン( "トップシート"上)の出力を "ビルドの詳細"のセルにリンクしようとしましたが、これが 'Build Details'!E6の値を変更している間、 'ビルドの詳細'!E6はダブルクリックされ、入力はヒットします。 – TaxingTimes

関連する問題