使用嵌套的IF语句隐藏行

0 excel vba excel-vba

我一直试图根据两个目标地址中的两个条件目标值在电子表格中隐藏一行.这在我希望它检查一个目标地址时有效,但如果我使用两个目标地址则不行.我还没有在这个网站上找到解决方案.以下是示例代码:

If (Target.Address = "$G$2") And (Target.Value = "Yes") Then
    If (Target.Address = "$G$3") And (Target.Value = "Yes") Then
        Rows("4").EntireRow.Hidden = True
    End If
End If
Run Code Online (Sandbox Code Playgroud)

这只在我使用第一行时有效:

If (Target.Address = "$G$2") And (Target.Value = "Yes") Then
    Rows("4").EntireRow.Hidden = True
End If
Run Code Online (Sandbox Code Playgroud)

但是当我放入更多条件时,它将不起作用.我不确定这是否是.Hidden内部函数的限制,或者如果VBA不喜欢我的嵌套IF语句.

我会感激任何帮助,

谢谢.

编辑:

我已从评论中解决了我的问题,我没有正确定位两个单独的值,这是我的修复.

If (Target.Address = "$G$2") And (Target.Value = "Yes") Then
    If (Worksheets(1).Cells(3, 7).Value = "Yes") Then

        Rows("4").EntireRow.Hidden = True
    End If
End If
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

Com*_*ern 5

你的两个If语句是互斥的,因为如果Target.Address = "$G$2",它显然不能同时满足的条件Target.Address = "$G$3".我怀疑你正在寻找更像这样的东西:

If Target.Value = "Yes" And (Target.Address = "$G$2" Or Target.Address = "$G$3") Then
    Rows("4").EntireRow.Hidden = True
End If
Run Code Online (Sandbox Code Playgroud)