[英]How to perform multiple AND statement after THEN Statement
Sub Crons()
Dim s1 As Worksheet, s2 As Worksheet
Dim check1 As Boolean, check5 As Boolean, check10 As Boolean, flow As Boolean, speed As Boolean, motor_power As Boolean
Set s1 = ThisWorkbook.Worksheets(1)
Set s2 = ThisWorkbook.Worksheets(2)
check1 = s2.CHECKBOXES("Check Box 1").Value = xlOn
check5 = s2.CHECKBOXES("Check Box 5").Value = xlOn
check10 = s2.CHECKBOXES("Check Box 10").Value = xlOn
flow = s1.Range("B26").Value = "Flow(from fill level)"
speed = s1.Range("B24").Value = "Speed"
motor_power = s1.Range("B25").Value = "Motor Power"
If check1 Or _
((check10 Or check5) Or _
(flow Or speed) Or _
(motor_power)) Then
s1.Range("B30").Value = "Activate anomaly detection" And _
s1.Range("B31").Value = "Activate Operating hour" And _
s1.Range("B32").Value = "Activate cycle time"
Else
s1.Range("B30").Value = vbNullString And _
s1.Range("B31").Value = vbNullString And _
s1.Range("B32").Value = vbNullString
End If
End Sub
只是不要使用AND
!
If check1 Or _
((check10 Or check5) Or _
(flow Or speed) Or _
(motor_power)) Then
s1.Range("B30").Value = "Activate anomaly detection"
s1.Range("B31").Value = "Activate Operating hour"
s1.Range("B32").Value = "Activate cycle time"
Else
s1.Range("B30").Value = vbNullString
s1.Range("B31").Value = vbNullString
s1.Range("B32").Value = vbNullString
End If
您誤解了And
運算符。 它有兩個目的:
If
語句中使用的Or
。 而True Or False
等於True
, True And False
等於False
。1
位組成的值。 例如, 14 And 7
= 二進制1110 And 0111
= 二進制0110
= 6。嘗試根據您的代碼將其用作過程語句(“做 X,然后做 Y”)不僅不正確而且沒有意義,因為這是兩個語句順序的普通行為。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.