这是我的代码,但它实际上并没有做任何事情,我没有发现它有什么问题:
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
我的目的是当从下拉菜单中将上一行中的特定单元格设置为“通过”时,就会出现下面的一行,如果是“失败”,那么它将被隐藏。
答案1
看起来你的代码中有一些拼写错误。你想要的是这样的:
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
答案2
没有拼写错误。“rows(51)”有效。但你不需要“entirerow”修饰符
rows(n).hidden=true ; where n is an valid row number
隐藏多行
range(rows(n1),rows(n2)).hidden=true ; will hide rows n1 though n2
答案3
Private Sub PG1()
Range("$E$51").EntireRow.Hidden = (Range("$E$50").Value = "Passed")
End Sub