셀 D3의 드롭다운 목록에 따라 열 I의 값이 0인 경우 모든 행을 숨기려면

셀 D3의 드롭다운 목록에 따라 열 I의 값이 0인 경우 모든 행을 숨기려면

D3 셀에 드롭다운 목록이 있습니다. D3을 변경하면 행 값 중 일부는 0보다 크거나 작은 숫자로 변경되고 일부는 열 I에 날카로운 0으로 유지됩니다. 반복되는 매크로가 필요하며 결과는 D3를 변경할 때 정확한 0 값을 가진 모든 정보가 되어야 합니다. 열 I은 숨겨지지만 D3을 다시 변경하면 열 I에 0이 포함된 모든 행이 재설정되고 다시 숨겨집니다.

답변1

시트의 변경 내용으로 매크로를 트리거하려면
Worskheet.Change 이벤트를 사용하여 워크시트에 하위 항목을 배치할 수 있습니다.Private Sub Worksheet_Change(ByVal Target As Range)

"I" 열을 반복하는 데에는 몇 가지 방법이 있습니다. 범위를 정의하고 For each루프를 수행하거나 반복 가능 항목을 사용할 수 있습니다.

전체 열의 반복을 피하기 위해 몇 가지 다른 방법으로 열의 마지막 사용 행을 찾을 수 있습니다. Cells(Rows.Count, 9).End(xlUp).Row그 중 하나입니다.

루프에서 셀 값을 확인하는 것은 충분히 간단하며 행을 숨기려면 다음을 사용하면 됩니다.Range.EntireRow.Hidden = True

전체 내용은 다음과 같습니다.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim hide As Boolean, i As Long
'Intersect validates that the change is only happening in "D3" to be valid
If Not Intersect(Target, Range("D3")) Is Nothing And Target.Count = 1 Then
' i = starting range - to - last row    
    For i = 4 To Cells(Rows.Count, 9).End(xlUp).Row
        hide = False
        If Cells(i, 9).Value = "0" Then hide = True
        Cells(i, 9).EntireRow.Hidden = hide
    Next i
End If
End Sub

관련 정보