当我创建一个具有多个要求的 If 语句时,其中一些有效,另一半不起作用



我希望这对你们中的一些专家来说是一个非常快速的解决方案,但我已经搜索了又搜索,似乎不知道我做错了什么。

从本质上讲,我的目标是根据其他工作表和单元格中的各种值来隐藏和取消隐藏多个工作表。如果用户选择了一个特定的组合;是";以及";否";在第一张纸上的问题,将出现选定的第二张纸。当他们在第二张图纸中输入值时,第三张图纸将出现。我已经能够解决所有这些问题,我的问题是,当第一张纸上的问题发生变化时,第三张纸仍然可见,但我希望第三张变得隐藏,而用户不必更改第二张纸上最初使其可见的信息。

这是我第一张纸的代码(效果很好(

Private Sub Worksheet_Change(ByVal Target As Range)
If [C5] = "Yes" _
And [C6] = "No" _
And [C7] = "No" Then
Sheets("Sheet2").Visible = True
Else
Sheets("Sheet2").Visible = False
End If
End Sub

这是我第二张纸的代码:

Private Sub Worksheet_Change(ByVal Target As Range)
If [H11] > 0 Or [H12] > 0 Or [H13] > 0 _
And Worksheets("Sheet1").Range("C5").Value = "Yes" _
And Worksheets("Sheet1").Range("C6").Value = "No" _
And Worksheets("Sheet1").Range("C7").Value = "No" Then
Sheets("Sheet3").Visible = True
Else
Sheets("Sheet3").Visible = False
End If
End Sub

代码的前半部分可以工作,但引用不同工作表中单元格的代码部分不起作用。我尝试了多种格式化引用的方法,但没有任何更改。

有什么想法吗?

谢谢!

And优先于Or

A or B and C

与相同

A or (B and C)

如果A为真,则结果为真,并且B和C是不相关的

添加括号可以减少混淆,尤其是当涉及到Or时。

最新更新