Código VBA para ocultar linhas em uma tabela (mais complicado do que parece)

0

O ÚLTIMO POSTAIS FOI APAGADO - "FOI PERGUNTADO ANTES" - POR FAVOR, LEIA TODA A COISA:)

Basicamente, eu tenho uma tabela grande (500 linhas) e preciso mostrar apenas a quantidade de linhas com base no valor de uma determinada célula (se o valor nessa célula for 123, mostre apenas as 123 primeiras linhas). Aqui está uma foto das 25 primeiras linhas da tabela

Eu quero conseguir isso sem escrevendo 500 'se' declarações como esta:

Private Sub PG1(ByVal Target As Range)
  If .Range("A1").Value = "123" Then
    Rows("124:500").EntireRow.Hidden = True
  End If
  If .Range("A1").Value = "124" Then
    Rows("125:500").EntireRow.Hidden = True
  End If
End Sub

Obrigado!

    
por Michael Froboese 01.10.2018 / 22:43

2 respostas

0

Isso deve funcionar. Você chama isso com t() tecnicamente. Eu não sei o que você precisa da referência de destino, mas isso funcionou para mim.

Sub t()
PG1 (Worksheets("Sheet1").Range("A1"))
End Sub

Private Sub PG1(ByVal target As Range)
' Why do you need 'target' at all?
Dim lastRow As Long
With Worksheets("Sheet1") ' CHANGE AS NEEDED
    lastRow = .Range("A1").Value
    .Range("A1:A" & lastRow).EntireRow.Hidden = False
    .Range("A" & lastRow + 1 & ":A500").EntireRow.Hidden = True
End With
End Sub

Isso também não é relativo, presume-se que sua tabela esteja literalmente nas linhas 1:500 .

    
por 01.10.2018 / 23:13
0
Private Sub PG1(ByVal Target As Range)
    .Range("A" & .Range("A1").Value & ":A500").EntireRow.Hidden = True
End Sub
    
por 01.10.2018 / 23:06