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

セル値に基づいて行を非表示または非表示にするVBAコード

以下は私のコードですが、実際には何もしていません。

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

0x1&

私の意図は、前の行の特定のセルがドロップダウンから “Passed "に設定されている場合、下の行が表示され、"Failed "に設定されている場合、代わりに非表示になるということです。

回答 (3)

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

あなたのコードにはいくつかのタイプミスがあるように見えます。以下のようにしてください。

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

シートの変更に合わせて行の非表示/非表示を更新するには、Worksheet_Change イベントに設定します。

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
``` 0x1&
1
1
1
2015-08-06 21:24:01 +0000

タイプミスはありませんでした。"rows(51) “は有効ですが、複数の行を隠すために "entirerow "修飾子

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

は必要ありません。

-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