excel vba 怎么让这条代码,多加几个“包含”某某文字的,的条件
答案:2 悬赏:50 手机版
解决时间 2021-11-24 13:29
- 提问者网友:王者佥
- 2021-11-24 08:00
excel vba 怎么让这条代码,多加几个“包含”某某文字的,的条件
最佳答案
- 五星知识达人网友:人间朝暮
- 2021-11-24 09:34
如果只有两三个,就用OR了,你写出来发现不对,那是优先级的问题,给OR加括号,例如:
If (Instr(Range("a" & i) ,"-F")>0 OR Instr(Range("a" & i) ,"-B")>0 OR Instr(Range("a" & i) ,"-C")>0) and rows(i).hidden=false
事实上VBA不支持布尔短路运算,这样写更好,可以减少比较的次数:
If rows(i).hidden=false then
If (Instr(Range("a" & i) ,"-F")>0 OR Instr(Range("a" & i) ,"-B")>0 OR Instr(Range("a" & i) ,"-C")>0) Then
end if
如果需要判断许多,可以使用for each循环,例如:
ok=0
v=Range("a" & i)
for each t in Array("-F","-B","-C")
if instr(v,t)>0 then
ok=1
exit for
end if
next t
if ok=1 and rows(i).hidden=false不过这样仅仅是为了程序代码简洁,对效率没有多大的好处
If (Instr(Range("a" & i) ,"-F")>0 OR Instr(Range("a" & i) ,"-B")>0 OR Instr(Range("a" & i) ,"-C")>0) and rows(i).hidden=false
事实上VBA不支持布尔短路运算,这样写更好,可以减少比较的次数:
If rows(i).hidden=false then
If (Instr(Range("a" & i) ,"-F")>0 OR Instr(Range("a" & i) ,"-B")>0 OR Instr(Range("a" & i) ,"-C")>0) Then
end if
如果需要判断许多,可以使用for each循环,例如:
ok=0
v=Range("a" & i)
for each t in Array("-F","-B","-C")
if instr(v,t)>0 then
ok=1
exit for
end if
next t
if ok=1 and rows(i).hidden=false不过这样仅仅是为了程序代码简洁,对效率没有多大的好处
全部回答
- 1楼网友:执傲
- 2021-11-24 09:45
试试将-B、-C、-F等放在数组中。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯