Desejo ocultar linhas no Excel 2010 usando o VBA se um valor de célula estiver em branco

0

Eu posso fazer com que o VBA funcione muito bem para fazer isso, mas minha planilha é de 20 MB sem dados. O que eu quero fazer é encontrar a primeira vez que uma célula está em branco e, em seguida, ocultar todas as linhas de uma só vez a partir desse ponto até o final. Aqui está o meu código que funciona:

Dim rl As Range
For Each rl In Sheets("Results").Range("$A$4:$A$800")
  If rl.Value = "" Then
      r1.EntireRow.Hidden = True
  Else: rl.EntireRow.Hidden = False
  End If
Next rl

Então, neste exemplo, se r1.value="", eu quero me esconder dessa linha até a linha 800. Algum conselho?

    
por Nicholas Conklin 24.07.2015 / 22:18

1 resposta

0

Para torná-lo mais rápido, tente isto:

Sub Test()
  Dim i As Long
  For i = 4 To 800
    If Sheets("Results").Cells(i, 1).Value = "" Then
      Rows(i & ":" & Rows.Count).EntireRow.Hidden = True
      Rows("1:" & i - 1).EntireRow.Hidden = False
      Exit Sub
    End If
  Next
End Sub

verifica a primeira célula na linha A sem texto e oculta todas as linhas abaixo dela (inclui a célula encontrada) e torna todas as células visíveis sobre ela (excluindo a célula encontrada)
isso também aceita células como "sem texto" com fórmulas com "" resultado

para ocultar apenas a partir da alteração real da célula vazia

 If Sheets("Results").Cells(i, 1).Value = "" Then

para

If isempty(Sheets("Results").Cells(i, 1).Value) Then

também quando apenas se escondendo até a linha 800 mudar

Rows(i & ":" & Rows.Count).EntireRow.Hidden = True

para

Rows(i & ":800").EntireRow.Hidden = True
    
por 07.11.2015 / 23:09