三重if语句中的VBAmacrosINSTR函数
我尝试使用“instring”函数为计数器制作三重filter。 主要想法是定义一个范围,然后检查每个单元格如下:
1)在单元格中find内容“0111”
2)如果find的单元格中的内容为“0111”,则检查该单元格左边的列,如果内容“127”存在
3)检查当前单元格的行是不是红色(颜色3)
4)如果以上所有情况都是真的,请提出反诉。
我的代码如下所示:
Set SrchRng4 = Range("J1:J100") For Each cel In SrchRng4 If InStr(1, cel.Value, "0111", 1) > 0 Then If InStr(1, ActiveCell(Offset(-1,0), "127", 1) > 0 And cel.EntireRow.Interior.ColorIndex <> 3 Then count_K = count_K + 1 End If Next cel
它用于search“111”和红色行的除外,但是在添加“127”filter之后它不起作用。 任何人都可以提供一些input? 我想这与语法有些问题?
亲切的问候,马库斯
For Each cel In Range("J1:J100") If InStr(cel, "0111") And InStr(cel( ,0), "127") _ And cel.EntireRow.Interior.Color <> vbRed Then count_K = count_K + 1 Next
- 不为0的数字值被评估为
True
,所以> 0
是可选的 -
cel(,0)
类似于cel.Offset(0,-1)
来获取cel
左边的单元格 -
vbRed
和rgbRed
是红色常量,但.ColorIndex <> 3
也是很好的 - 每个
If .. Then
语句应该有一个匹配的End If
语句,除非它在一行上