빈 셀까지 열을 반복합니다.

빈 셀까지 열을 반복합니다.

다음 공식이 잘 작동합니다만약에각 셀을 반복해서 정의하지만 A열과 B열을 수백 개의 행으로 실행하는 루프가 필요합니다. 나는 시도했지만 맨 아래의 빈 셀에 도달하면 실행되고 중지되는 루프를 작성할 수 없는 것 같습니다. 이는 탭 이름이 다른 여러 스프레드시트에서 실행될 수 있어야 합니다.

현재 작동하는 예: [ 반복되는 하나의 수식을 갖고 싶습니다. ] 루프를 작동시킬 수 없기 때문에 현재 이것을 100줄에 걸쳐 작성했습니다. :-(

Sub Hidelines()

If Range("A1").Value = "No" Then
    Rows("1:1").EntireRow.Hidden = True
ElseIf Range("B1").Value = "NEVER" Then
    Rows("1:1").EntireRow.Hidden = True
    End If

If Range("A2").Value = "No" Then
    Rows("2:2").EntireRow.Hidden = True
ElseIf Range("B2").Value = "NEVER" Then
    Rows("2:2").EntireRow.Hidden = True
    End If

If Range("A3").Value = "No" Then
Range("E3").Select
    Rows("3:3").EntireRow.Hidden = True
ElseIf Range("B3").Value = "NEVER" Then
    Rows("3:3").EntireRow.Hidden = True
    End If

End Sub

답변1

Sub HideRows()
Dim RowCount: RowCount = 1   ' Row you wish to start from
Dim ColIndex: ColIndex = 1   ' Column to look within (A = 1) - Never will be in ColIndex + 1

Do
    If (LCase(Cells(RowCount, ColIndex).Value) = "no") Then
        Cells(RowCount, ColIndex).EntireRow.Hidden = True
    ElseIf (LCase(Cells(RowCount, ColIndex + 1).Value) = "never") Then
        Cells(RowCount, ColIndex).EntireRow.Hidden = True
    End If
    RowCount = RowCount + 1
Loop Until IsEmpty(Cells(RowCount, ColIndex).Value)

End Sub

이것은 열의 빈 셀에 도달할 때까지 각 행 아래로 계속 이동합니다 ColIndex. 에 대해 동일한 열 No이나 그 오른쪽에 있는 열을 대소문자를 구분하지 않고 살펴보고 Never, 그렇다면 행을 숨깁니다.

관련 정보