2016-09-13 14 views
0

私は一連のコードを持っています.C37が空白の場合は、2つの一連の行を非表示にします。私が持っているコードはこれでうまくいく。しかしif文をExcel VBAで表示/非表示にする

D37は、私が再表示する行の同じシリーズをご希望の空白でない場合。

'Show/Hide Filter Index Columns 

If Worksheets("Req Sheet").Range("C37").Value = "" Then 
    Worksheets("Formulation").Rows("54:57").EntireRow.Hidden = True 
    Worksheets("Formulation").Rows("125:128").EntireRow.Hidden = True 
Else 
    Rows("54:57").EntireRow.Hidden = False 
    Rows("125:128").EntireRow.Hidden = False 

End If 

If Worksheets("Req Sheet").Range("C38").Value = "" Then 
    Worksheets("Formulation").Rows("54:57").EntireRow.Hidden = True 
    Worksheets("Formulation").Rows("125:128").EntireRow.Hidden = True 
Else 
    Rows("54:57").EntireRow.Hidden = False 
    Rows("125:128").EntireRow.Hidden = False 

End If 

は私が間違っているコードの構文を持って知っているが、私は取得しています問題は、C38からのコードの第2の部分がC37からのコードに取って代わるだろうということです。

私はand演算子を使用しようとしましたが、成功できませんでした。

ありがとうございました!

+0

C37とC38の両方が空の場合、行を非表示にしますか? – gizlmo

+0

あなたはあなたの記事のように 'D37'をテストしたいですか?あなたのコードで 'C38'ですか? –

答えて

1
With Worksheets("Req Sheet") 

    If .Range("C37").Value <> "" Or .Range("C38").Value <> "" Then 
     Worksheets("Formulation").Rows("54:57").EntireRow.Hidden = False 
     Worksheets("Formulation").Rows("125:128").EntireRow.Hidden = False 
    Else 
     Worksheets("Formulation").Rows("54:57").EntireRow.Hidden = True 
     Worksheets("Formulation").Rows("125:128").EntireRow.Hidden = True 

     Rows("54:57").EntireRow.Hidden = False 
     Rows("125:128").EntireRow.Hidden = False 
    End If 

End With 
+0

こんにちは!これは、C37にデータがある場合に機能しますが、C38にデータがあり、C37が空白の場合、行はまだ隠されています。 – vividillusion

+2

これはあなたが望むものですか?注意;行( "54:57")と行( "125:128")は決して隠されません。 –

0

このコードは、C37が空でD37にデータがある場合、行を非表示にします。
C37にデータがあり、D37が空の場合は行を再表示します。
その他の条件では、行が再表示されます。

Sub Test() 

    Dim rng As Range 

    With ThisWorkbook 
     Set rng = Union(.Worksheets("Formulation").Rows("54:57"), _ 
         .Worksheets("Formulation").Rows("128:128")) 

     With .Worksheets("Req Sheet") 
      rng.EntireRow.Hidden = (.Range("C37") <> "" And .Range("D37") = "") 
     End With 

    End With 

End Sub 
+0

こんにちは、 このコードを使用すると、D37では正常に動作しますが、C37にデータがある場合は非表示になります。 さらに、両方が空白の場合は非表示にする必要がありますが、行は表示されます。 – vividillusion

+0

はい、あなたの要求を理解することに問題があります:_C37は空白です。私は2行の行を非表示にしたい、D37は空白ではありません。同じ列の行をunhiddenしたいと思います._ C37またはD37が空白の場合、一連の行を非表示にしたい(D37が空でない場合は表示されないので、空白の場合は非表示にする)。コードを書く前に、C37&D37と言うが、コードの後はC37&C38 ...非常に混乱している。 –

関連する問題