열 E의 셀 값이 0 인 경우 해당 행을 자동으로 숨기거나 숨기기를 시도하고 있습니다. 이 셀에는 수식이 있으며 다른 수식의 셀이 변경되면이 수식은 0을 반환합니다. 그 변화에 나는 코드가 숨기기/숨기기 해제 마법을 수행하고 싶습니다.셀 값이 0 일 때 해당 행 숨기기
도움 주시면 감사하겠습니다.
열 E의 셀 값이 0 인 경우 해당 행을 자동으로 숨기거나 숨기기를 시도하고 있습니다. 이 셀에는 수식이 있으며 다른 수식의 셀이 변경되면이 수식은 0을 반환합니다. 그 변화에 나는 코드가 숨기기/숨기기 해제 마법을 수행하고 싶습니다.셀 값이 0 일 때 해당 행 숨기기
도움 주시면 감사하겠습니다.
사용이 mhetod : 당신은 Microsoft Excel에서 필요한 시트에 다음 방법을 버튼을 추가하고 Button_Click
이벤트에 의해이 메소드를 호출하거나 추가 할 수 있습니다
Sub HideRows()
Dim i As Integer
i = 1
Do While Not Cells(i, 5) = ""
If Cells(i, 5).Value = 0 Then
Rows(CStr(i) + ":" + CStr(i)).EntireRow.Hidden = True
ElseIf Cells(i, 5).Value <> 0 And Rows(CStr(i) + ":" + CStr(i)).EntireRow.Hidden = True Then
Rows(CStr(i) + ":" + CStr(i)).EntireRow.Hidden = False
End If
i = i + 1
Loop
End Sub
는
Private Sub Worksheet_Change()
Module1.HideRows
End Sub
이 개체 메서드는 일부 셀이 변경 될 때 HideRow
메서드를 호출합니다.
다음은 자동 필터를 사용하는 더 빠른 방법입니다. 이 코드를 직접 호출하거나 Worksheet_Calculate
이벤트에서 사용할 수 있습니다. 셀 E1
에 헤더가 있다고 가정합니다. 이 당신이 원하는 경우에 행을 숨김 해제 못하게 나는 자동으로이 코드를 호출하지 않는 것이 좋습니다
을 권장하지 않음 - 버튼
Option Explicit
Sub Sample()
Dim rRange As Range, RngToHide As Range
Dim lRow As Long
'~~> Remove any filters
ActiveSheet.AutoFilterMode = False
With Sheets("Sheet1")
lRow = .Range("E" & Rows.Count).End(xlUp).Row
Set rRange = .Range("E1:E" & lRow)
With rRange
.AutoFilter Field:=1, Criteria1:="0"
Set RngToHide = .Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow
End With
End With
'~~> Remove any filters
ActiveSheet.AutoFilterMode = False
If Not RngToHide Is Nothing Then RngToHide.Hidden = True
End Sub
워크 시트 계산 경우에도
숨겨진 행의 내용을 변경하십시오. 행을 숨김 해제하려면
Worksheet_Calculate
이벤트의 전체 코드를 주석 처리하거나 연결된 셀에서 값을 0이 아닌 값으로 변경해야합니다 (은 연결된 셀이 숨겨진 행이 아닌에 있음). 골 E의 값이 0
Option Explicit
Private Sub Worksheet_Calculate()
Dim rRange As Range, RngToHide As Range
Dim lRow As Long
On Error GoTo Whoa
Application.ScreenUpdating = False
Application.EnableEvents = False
'~~> Remove any filters
ActiveSheet.AutoFilterMode = False
With Sheets("Sheet1")
lRow = .Range("E" & Rows.Count).End(xlUp).Row
Set rRange = .Range("E1:E" & lRow)
With rRange
.AutoFilter Field:=1, Criteria1:="0"
Set RngToHide = .Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow
End With
End With
'~~> Remove any filters
ActiveSheet.AutoFilterMode = False
If Not RngToHide Is Nothing Then RngToHide.Hidden = True
LetsContinue:
Application.ScreenUpdating = True
Application.EnableEvents = True
Exit Sub
Whoa:
MsgBox Err.Description
Resume LetsContinue
End Sub
로 변경 될 때이 행을 숨 깁니다