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

VBA-Code zum Ein- und Ausblenden von Zeilen basierend auf einem Zellwert

Heres mein Code, aber seine nicht wirklich etwas tun, ich sehe nicht, etwas falsch mit ihm:

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

Meine Absicht ist, dass, wenn diese spezifische Zelle in der vorherigen Zeile auf “Bestanden” aus dem Dropdown-Menü gesetzt wird, dann die untere Zeile erscheinen würde, wenn es ein “Fehlgeschlagen” ist, dann wird es stattdessen ausgeblendet werden.

Antworten (3)

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

Es sieht so aus, als ob Ihr Code einige Tippfehler enthält. Sie wollen etwas, das wie folgt aussieht:

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

Um das Ausblenden der Zeile zu aktualisieren, wenn Sie das Blatt ändern, legen Sie es in ein Worksheet_Change-Ereignis:

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

Es war kein Tippfehler. “rows(51)” ist gültig. aber Sie brauchen den Modifikator “entirerow” nicht

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

um mehrere Zeilen auszublenden

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