2017-07-07 13 views
0

こんにちは私は以下のコードを試しましたが、それは誰も私を助けることができるように動作していないようです。私は、B1がテキストDeleteを持っているときに3 & 4の行を非表示にしたいだけです。しかし、B1にDeleteと入力すると自動的に実行されます。Excelマクロクエリ:セル値に基づいて行を非表示

おかげ

Code

+0

などのように、LCase()を使用してください。次の投稿を確認し、問題に適切なコードが含まれているかどうかを確認して、含まれているエラーとエラーが受信されていることを確認してください: https://stackoverflow.com/help/how-to-ask – garfbradaz

+0

コード画像として。それをテキストとして組み込み、コードブロックとしてフォーマットすると、人々があなたを助けるのがはるかに簡単です。 –

答えて

1

このような何かが

Option Explicit 'Very first line to ensure that variables are declared 

Private Sub Worksheet_Change(ByVal Target As Range) 
    'check if target address is B1 
    If Target.Address(RowAbsolute:=False, ColumnAbsolute:=False) = "B1" Then 
     ShowHideRows 
    End If 
End Sub 

Public Sub ShowHideRows() 
    If Range("B1").Value = "Delete" Then 
     Rows("3:4").EntireRow.Hidden = True 
     Rows("7:8").EntireRow.Hidden = False 
    ElseIf Range("B1").Value = "Open" Then 'use ElseIf if possible like here 
     Rows("3:4").EntireRow.Hidden = False 
     Rows("7:8").EntireRow.Hidden = True 
    End If 
End Sub 

注動作するはずです:これは大文字と小文字が区別されを。だからDeleteの代わりにB1 deleteと入力すると実行されません。大文字と小文字を区別しないようにするには、

LCase(Range("B1").Value) = "delete" 'string delete must be lower case! 
関連する問題