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
.