2014-07-25 5 views
-1

동일한 행의 여러 셀 값을 기반으로 Excel의 행을 숨길 필요가 있습니다. 내 행에 모두 0이 포함되어 있거나 비어 있다면 숨겨 줘야합니다. 어떤 정수 (0이나 neg가 아닌)가 있다면 나는 그 줄을 보여줄 필요가있다. 동일한 시트에는 섹션을 구분하는 '섹션 헤더'가 있으며, 그 아래에는 공백 행이 있습니다. 그 의도적 인 공란을 남겨 둘 수 있습니까? 부분적으로 작동하는 몇 줄의 라인을 작성 했으니 까, 나는 그걸 함께 모을 수 없다.여러 셀을 기준으로 행 숨기기

Basic layout

희망 도움이 메이크업의 감각과 감사합니다!

편집 : 이제 숨겨진 열이있는 경우 '합계'를 사용하여 숨겨진 열을 무시하고 싶습니다. RowanC의 대답 안에 뭔가 중첩 해 보았지만 아무 것도 시도하지 않았습니다. 그것에

For Each myRow In hideRange.Rows 
    For Each cell In hideRange.Cells 
     If cell.Columns.Hidden = False Then 
      Total = Total + cell.Value 
     End If 
    Next 
    If Total = 0 Then 'if the sum of the row=0 then hide 
     myRow.EntireRow.Hidden = True 
    End If 
Next 
+0

'0 또는 음수가 아닌 정수가있는 경우 표시된 행이 필요합니다. '0은 사용자 요구 사항에 잘 맞다고 생각합니다. 따라서 행 값의 합이> 0인지 테스트해야합니다. false의 경우는 그것을 숨 깁니다. 아, 그리고 @RowanC는 그런 대답을 올렸습니다. – L42

+0

이 솔루션을 찾았습니다. 특수 셀 (xlcelltypevisible) 모두에게 감사드립니다! –

답변

0

내 빠른 이동 :

Sub rowHider1() 
    Dim hideRange As Range 
    Dim myRow As Range 

    Set hideRange = Sheets(2).Range("A2:D12") 'you must set this to apply to the range you want (you could use active selection if you wanted) 
    hideRange.Rows.EntireRow.Hidden = False 'unhide any rows currently hidden 
    For Each myRow In hideRange.Rows 
     If Application.WorksheetFunction.Sum(myRow) = 0 Then 'if the sum of the row=0 then hide 
      myRow.EntireRow.Hidden = True 
     End If 
    Next 
End Sub 

한 단계 더이을하고, 열이 숨겨진 경우, worksheetFunction 합계에서 멀리 이동 합계에 포함되지 않습니다 :

Sub rowHider() 
Dim hideRange As Range 
Dim myRow As Range 
Dim cell As Range 
Dim bob As Double 
Set hideRange = Sheets(2).Range("A1:G12") 'you must set this to apply to the range you want (you could use active selection if you wanted) 
hideRange.Rows.EntireRow.Hidden = False 'unhide any rows currently hidden 
For Each myRow In hideRange.Rows 
    bob = 0 
    For Each cell In myRow.Cells() 
     If cell.EntireColumn.Hidden <> True Then 
     Debug.Print cell.Address & " " & cell.Value 
      bob = bob + cell.Value 
     End If 
    Next 
    If bob = 0 Then 'if the sum of the row=0 then hide 
     myRow.EntireRow.Hidden = True 
    End If 
Next 
End Sub 
+0

완벽하게 작동했으며, 숨겨진 열에 있던 셀의 값을 무시하려고 시도하기 전까지는 이해할 수 있다고 생각했습니다. 귀하의 답변 안에 For Each Cell을 중첩 시키려고했지만 행운이 없습니다. 정말 고맙습니다! –