2016-09-13 2 views
0

나는 C37이 비어있는 경우 일련의 행이 숨겨 지도록합니다. 내가 가지고있는 코드는 이것을 성공적으로 수행한다. D37이 비어 있지 않은 경우 if 문을 Excel VBA에서 숨기거나 표시하는 경우

그러나

,

나는 숨김 해제 할 행의 같은 시리즈를하고 싶습니다.

'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에서 코드의 두 번째 부분은 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이 비어 있습니다. 두 행의 행이 숨겨지기를 원합니다. D37이 비어 있지 않습니다. 같은 행의 행을 숨김 상태로 표시하고 싶습니다 ._ C37 또는 D37이 비어있는 경우 변환됩니다. 일련의 행을 숨기고 싶습니다 (D37이 비어 있지 않으면 비 표시이므로 비어 있으면 숨김). 코드를 작성하기 전에 C37 & D37이라고 말하고 코드 뒤에 C37 & C38 ... 매우 혼란 스럽습니다. –

관련 문제