2013-10-22 01:45:14 +0000 2013-10-22 01:45:14 +0000
2
2

VBA-code om rijen te verbergen of te deactiveren op basis van een celwaarde

Hier is mijn code, maar het doet niet echt iets, ik zie er niets verkeerds in:

Private Sub PG1(ByVal Target As Range)
    If .Range("E50").Value = "Passed" Then
        Rows("51").EntireRow.Hidden = True
    End If
    ElseIf Range("E50").Value = "Failed" Then
        Rows("51").EntireRow.Hidden = True
    End If
End Sub

Mijn bedoeling is dat wanneer die specifieke cel in de vorige rij is ingesteld op “Passed” van de dropdown, dan zou de onderstaande rij verschijnen, als het een “Failed” is dan zal het in plaats daarvan worden verborgen.

Antwoorden (3)

9
9
9
2013-10-22 02:24:58 +0000

Het lijkt erop dat je code wat typefouten bevat. Je wilt iets dat er als volgt uitziet:

Sub PG1()

    If Range("E50").Value = "Passed" Then
        Rows("51:51").EntireRow.Hidden = True
    ElseIf Range("E50").Value = "Failed" Then
        Rows("51:51").EntireRow.Hidden = False
    End If

End Sub

Om de rij te verbergen/verbergen te updaten als je het blad verandert, zet je het in een Worksheet_Change event:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("E50").Value = "Passed" Then
        Rows("51:51").EntireRow.Hidden = True
    ElseIf Range("E50").Value = "Failed" Then
        Rows("51:51").EntireRow.Hidden = False

    End If
End Sub
1
1
1
2015-08-06 21:24:01 +0000

Er was geen typefout. “rows(51)” is geldig. maar je hebt de “entirerow” modifier niet nodig

rows(n).hidden=true ; where n is an valid row number

om meerdere rijen te verbergen

range(rows(n1),rows(n2)).hidden=true ; will hide rows n1 though n2
-1
-1
-1
2015-03-27 15:33:16 +0000
Private Sub PG1()
    Range("$E$51").EntireRow.Hidden = (Range("$E$50").Value = "Passed")
End Sub