奇怪的问题,if使用 or 多条件判断居然失效了
vb吧
全部回复
仅看楼主
level 4
ey7608093 楼主
text1的内容如下;
第四种 包含 款 项
第六条 企业事业单位应当按照相关法律法规和标准规范的要求,履行下列义务:0
(一)开展突发环境事件风险评估;1
(二)完善突发环境事件风险防控措施;2
(三)排查治理环境安全隐患;3
(四)制定突发环境事件应急预案并备案、演练;4
(五)加强环境应急能力保障建设。5
发生或者可能发生突发环境事件时,企业事业单位应当依法进行处理,并对所造成的损害承担责任。这里如果下一行有项,肯定这里有关键字 下列6
(一)7
(二)8
但乖宝9
前款10
第一百零九 节 11
第七条 12
Private Sub Command1_Click()
Dim i As Long
Dim c() As String
Dim s As String
c = Split(Text1.Text, vbCrLf)
For i = 0 To UBound(c)
If InStr(1, c(i), "节 ", vbTextCompare) = 0 Or InStr(1, c(i), "章 ", vbTextCompare) = 0 Then
MsgBox c(i)
Else
MsgBox "1"
End If
Next i
End Sub
2022年07月14日 08点07分 1
level 14
感觉应该没问题。
2022年07月14日 08点07分 2
level 4
ey7608093 楼主
那个msgbox "1" 永远弹不出来
2022年07月14日 08点07分 3
level 15
你这个条件的意思是:如果被查找的字符串中没有“节”字,或者没有“章”字,则显示这个字符串,否则(即两个字都有时)才显示“1”
你确定这个意思正确么?因为你这整段话里就没有一个“章”字,这个条件永远是成立的
2022年07月14日 09点07分 4
那为什么这样就可以呢?
2022年07月15日 00点07分
level 4
ey7608093 楼主
For i = 0 To UBound(c)
If InStr(c(i), "节 ") <> 0 Or InStr(c(i), "章 ") <> 0 Then
MsgBox "1"
Else
MsgBox "1" & vbCrLf & c(i)
End If
Next
2022年07月15日 00点07分 5
level 15
因为“两个数有一个等于0”和“两个数有一个不等于0”这两个条件不是对立条件(即非此即彼、一个成立时另一个必然不成立的条件),“两个数有一个不等于0”的对立条件应该是“两个数都等于0”,即:
InStr(c(i), "节 ") = 0 And InStr(c(i), "章 ") = 0
这个特性在逻辑学上叫做反演律,简单说就是“Or的相反条件是And,And的相反条件是Or”
2022年07月15日 01点07分 6
level 1
instr不熟悉吧,找到目标返回值大于0,找不到才返回0
2022年07月15日 04点07分 8
level 9
集合的交并补 要搞清楚啊
2022年07月16日 10点07分 9
1