繁体   English   中英

三重if语句中的VBA宏INSTR函数

[英]VBA macro INSTR function in triple if statement

我尝试使用“ instring”功能为计数器创建三重过滤器。 主要思想是定义一个范围,然后检查每个单元格,如下所示:

1)在单元格中找到内容“ 0111”

2)如果在单元格中找到内容“ 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

它适用于搜索“ 111”和红色行的示例,但在添加“ 127”过滤器后不起作用。 有人可以提供一些意见吗? 我想语法有问题吗?

亲切的问候,马库斯

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左侧的单元格
  • vbRedrgbRed是红色的常量,但是.ColorIndex <> 3也可以
  • 每个If .. Then语句应具有匹配的End If语句,除非它在一行上

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM