Loop down column até a célula em branco

0

A fórmula a seguir funciona bem if eu defino cada célula (várias vezes), mas preciso de um loop que percorra a coluna A & B para centenas de linhas. Eu tentei e simplesmente não consigo ser capaz de escrever um loop que é executado e pára quando atinge uma célula vazia na parte inferior. Isso precisa ser capaz de ser executado em várias planilhas com nomes de guias diferentes.

Exemplo do que funciona agora: [quero ter uma fórmula que dê loops] Eu atualmente tenho este escrito por 100 linhas, desde que eu não posso obter um loop para o trabalho. : - (

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
    
por Ed Regis 13.02.2016 / 03:31

1 resposta

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

Isso continuará em cada linha até atingir uma célula vazia na coluna ColIndex . Ele fará uma análise insensitiva da mesma coluna de No ou da coluna um à direita dela por Never e ocultará a linha em caso afirmativo.

    
por 13.02.2016 / 07:12