私のコードはここにありますが、それは実際には何もしていません。
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
私の意図は、前の行の特定のセルがドロップダウンから「合格」に設定されている場合、下の行が表示され、「失敗」の場合は代わりに非表示になることです。
あなたのコードにはいくつかのタイプミスがあるようです。次のようなものが必要です。
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
タイプミスはありませんでした。 「rows(51)」は有効です。しかし、「全体」修飾子は必要ありません
rows(n).hidden=true ; where n is an valid row number
複数の行を非表示にする
range(rows(n1),rows(n2)).hidden=true ; will hide rows n1 though n2